打印

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

[复制链接]
5289|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
czr012|  楼主 | 2017-2-7 12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在网上找了半天,八进制前面是字母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
那你是个细心的人

使用特权

评论回复
地板
mini1986| | 2017-2-10 15:19 | 只看该作者
很少用8进制,一般用10进制和16进制......

使用特权

评论回复
5
linqing171| | 2017-3-1 20:29 | 只看该作者
数字开头的是数字,字母 下划线 问号 开头的才能当变量。
数字有很多种,比如 0ULL也是数字,0x33也是数字。

使用特权

评论回复
6
candysnape| | 2017-3-2 09:15 | 只看该作者
八进制,Octal,缩写OCT或O。
肯定是O啊
而且正常写十六进制数的时候也是10H,不是H10嘛

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

16

帖子

0

粉丝