在C语言中,可以通过将00
放在数字之前来编写八进制数字,例如
编者注:它是单个前导0
,它将数字文字标识为C中的八进制值;其他0
个实例无效。
int i=0012; //equals 10 in decimal
我在C#中找到了十六进制的等价物,方法是将0x
放在数字之前,例如。
int i=0xA; //equals 10 in decimal
现在我的问题是: C中的八进制数是否与C中的相同,以表示任何数字为八进制?
答案 0 :(得分:40)
不,C#中没有八进制数字文字。
对于字符串:Convert.ToInt32("12", 8)
返回10
。
答案 1 :(得分:26)
没有,语言规范(ECMA-334)非常具体。
第4版,第72页
9.4.4.2整数文字
整数文字用于写入int,uint,long类型的值, 和ulong。整数文字有两种可能的形式:十进制和 十六进制。
没有八进制形式。
答案 2 :(得分:18)
不,C#中没有八进制文字。
如果有必要,你可以将一个字符串和一个基数传递给Convert.ToInt32
,但它显然远不如文字那么好:
int i = Convert.ToInt32("12", 8);
答案 3 :(得分:5)
不,C#中没有八进制数字。
使用public static int ToInt32(string value, int fromBase);
fromBase
Type: System.Int32
The base of the number in value, which must be 2, 8, 10, or 16.
答案 4 :(得分:0)
您不能使用文字,但可以解析八进制数:Convert.ToInt32("12", 8)
。