我在C中使用以零开头的int值(如00111001
)时遇到问题。
我知道C编译器将数字的开头的零值理解为八进制数。
我的问题是如何禁用它?我想将一个8位数的int转换为char array[8]
。
例如01010001={'0','1','0','1','0','0','0','1'}
答案 0 :(得分:0)
如果您正在使用GCC,则可以使用二进制文字。将变量设置为0b00111001。
答案 1 :(得分:0)
用引号括起你的号码:
char array[] = "01010001";
以上将使每个数字成为数组中您可以阅读的字符,并在末尾放置一个'\0'
字符,以便它可以用作C字符串 - 根据您的最后一句话。请注意,此字符串的长度(在内存中)将为9个字符,但这是因为添加了NUL
字符。