C中基于八进制的数字格式

时间:2015-06-02 17:51:22

标签: c binary char int octal

我在C中使用以零开头的int值(如00111001)时遇到问题。 我知道C编译器将数字的开头的零值理解为八进制数。

我的问题是如何禁用它?我想将一个8位数的int转换为char array[8]。 例如01010001={'0','1','0','1','0','0','0','1'}

2 个答案:

答案 0 :(得分:0)

如果您正在使用GCC,则可以使用二进制文字。将变量设置为0b00111001。

https://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html

答案 1 :(得分:0)

用引号括起你的号码:

char array[] = "01010001";

以上将使每个数字成为数组中您可以阅读的字符,并在末尾放置一个'\0'字符,以便它可以用作C字符串 - 根据您的最后一句话。请注意,此字符串的长度(在内存中)将为9个字符,但这是因为添加了NUL字符。