在C语言中,可以通过00
在数字之前放置来编写八进制数
编者注:它是一个单一的前导0
,它将数字文字标识为C中的八进制值; 其他0
实例无效.
int i=0012; //equals 10 in decimal
Run Code Online (Sandbox Code Playgroud)
我在C#中找到了相当于Hexadecimal的0x
数字,例如放在数字之前
int i=0xA; //equals 10 in decimal
Run Code Online (Sandbox Code Playgroud)
现在我的问题是: C中的八进制数是否与C中的相同,以表示任何数字为八进制数?
Jul*_*lia 26
不,没有,语言规范(ECMA-334)非常具体.
第4版,第72页
9.4.4.2整数文字
整数文字用于写入int,uint,long和ulong类型的值.整数文字有两种可能的形式:十进制和十六进制.
没有八进制形式.
Luk*_*keH 18
不,C#中没有八进制文字.
如果有必要,你可以传递一个字符串和一个基数Convert.ToInt32
,但它显然远不如文字那么好:
int i = Convert.ToInt32("12", 8);
Run Code Online (Sandbox Code Playgroud)
不,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.
Run Code Online (Sandbox Code Playgroud)