C#中的八进制等效

时间:2010-11-22 15:31:40

标签: c# .net numbers

在C语言中,可以通过将00放在数字之前来编写八进制数字,例如

编者注:它是单个前导0,它将数字文字标识为C中的八进制值;其他0个实例无效。

 int i=0012; //equals 10 in decimal

我在C#中找到了十六进制的等价物,方法是将0x放在数字之前,例如。

 int i=0xA; //equals 10 in decimal

现在我的问题是: C中的八进制数是否与C中的相同,以表示任何数字为八进制?

5 个答案:

答案 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.

MSDN

答案 4 :(得分:0)

您不能使用文字,但可以解析八进制数:Convert.ToInt32("12", 8)