【发布时间】:2021-10-17 04:51:44
【问题描述】:
我正在摆弄一个文件中的一组 i2c 地址。 i2c 地址都是无符号字符,看起来像“0x20”或“0x27”。
问题是从文件中读取时,我得到一个字符数组,但我无法弄清楚 如何将 char[] "0x21" 转换为 unsigned char '0x21'。
有没有类似于printf("0x%02x", address[i]); 但在另一个方向起作用的东西?
【问题讨论】:
-
问:“转换”是什么意思? “char”和“unsigned char”具有完全相同的位 - 不需要“转换”。也许你的意思是cast?示例:
printf("0x%02x", (unsigned char)address[i]); -
对不起,我的失误。是的,我的意思是投不转换。如果我使用 unsigned char 0x21 初始化 i2c,一切正常,但如果我尝试使用普通 char[] 初始化,则会出现段错误。
-
目前还不清楚要问什么。它是文本文件还是二进制文件? 确切的文件内容是什么?你读得怎么样?如果这是您想要的,为什么不将它读入
unsigned char的数组中? -
if i try to initialize with normal char[] it segfaults.-char[]不是char,