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

C语言中基于八进制的数字格式,c,binary,char,int,octal,C,Binary,Char,Int,Octal,我在C中使用以零开头的int值时遇到问题(如00111001)。 我知道C编译器将数字开头的零理解为八进制数 我的问题是如何禁用它?我想把一个8位数的整数转换成字符数组[8]。 e、 g.01010001={'0'、'1'、'0'、'1'、'0'、'0'、'0'、'1'}如果您使用的是GCC,则可以使用二进制文本。将变量设置为0b00111001 用引号括起您的号码: char array[] = "01010001"; 上述操作将使每个数字成为数组中的一个字符,您可以读取该字符,并在末尾放置

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

我的问题是如何禁用它?我想把一个8位数的整数转换成
字符数组[8]

e、 g.
01010001={'0'、'1'、'0'、'1'、'0'、'0'、'0'、'1'}

如果您使用的是GCC,则可以使用二进制文本。将变量设置为0b00111001


用引号括起您的号码:

char array[] = "01010001";

上述操作将使每个数字成为数组中的一个字符,您可以读取该字符,并在末尾放置一个
'\0'
字符,以便将其用作C字符串-如您的最后一句所示。注意,由于添加了
NUL
字符,该字符串(内存中)的长度将为9个字符。

这是二进制表示吗?您是否可以将其存储在字符串中而不是
int
?只需在源代码中将前导零替换为空格即可。有什么原因不能这样做吗?从你问题的一开始就不清楚你想要的是一个带前导零的整数,比如一个整数在整数中的二进制表示,或者只是一个数字的字符串表示,正如我在下面回答的那样。您想要的是实际整数还是字符字符串?此外,您不能禁用八进制文字。如果您谈论在运行时解析字符串,这是可能的。请用一些示例代码来澄清这个问题。要扩展我之前的评论,您可能有一个。你认为禁用八进制是解决问题的办法,你问我们怎么做。事实上,禁用八进制(甚至不清楚这意味着什么)几乎肯定不是解决方案。你需要更清楚地描述你的问题。如果你想要8个字符,你可以写
char数组[8]=“01010001”。当然,你不会有一个字符串,只是一个字符数组。事实上,我不确定他是想要
itoa()
,我这里有什么,还是完全不同的东西,他不会更新这个问题。不知道。他一小时前发布了这个问题,而且他是这个网站的新手。让我们给他点时间。