czr012 发表于 2017-2-7 12:10

你也在纠结八进制 前面是0 还是o吗?

在网上找了半天,八进制前面是字母o还是数字0,回答的也不一,最终有个答案还是比较靠谱的
如下:

1:在平时的书写的时候,八进制前面加0表示这个数是八进制,如 int a=034;(此时为数字0)

2:但是在程序中如果要输出八进制却用%o或%O   如:a=9;printf("%o",a);(此时为字母o)输出的结果就会变为11,如果是printf("%#o",在输出的时候就会加上那个前缀0,


一个例子更好的说明

如果真的以O开头表示一个数字,看下面一段代码
int o123;(没问题,标识符字母开头,包含字母数字)
int a = o123;   (如果为字母o,那是把变量赋值给a呢,还是八进制123赋值给a, )
歧义了。结果还是很明显,靠谱.....


renxiaolin 发表于 2017-2-7 12:18

那你是个细心的人

czr012 发表于 2017-2-7 13:43

renxiaolin 发表于 2017-2-7 12:18
那你是个细心的人

{:smile:}

mini1986 发表于 2017-2-10 15:19

很少用8进制,一般用10进制和16进制......

linqing171 发表于 2017-3-1 20:29

数字开头的是数字,字母 下划线 问号 开头的才能当变量。
数字有很多种,比如 0ULL也是数字,0x33也是数字。

candysnape 发表于 2017-3-2 09:15

八进制,Octal,缩写OCT或O。
肯定是O啊
而且正常写十六进制数的时候也是10H,不是H10嘛
页: [1]
查看完整版本: 你也在纠结八进制 前面是0 还是o吗?