您好,匿名用户
随意问技术百科期待您的加入

0195可以当作八进制数?

0 投票

在看《C陷阱与缺陷》一书中,其中1.4整型常量一节中有这么一段话:

此外,许多编译器会把8和9也作为八进制数字处理,这样多少有点奇怪的处理方式来自八进制数的定义。例如0195的含义是141(十进制)或者0215(八进制)。

我看了下八进制数的wiki, 没有发现定义中说0195也可以当八进制数。 难道八进制数定义另有隐情?

另外,能不能指出个能把常量0195识别为141的编译器?

用户头像 提问 2013年 11月14日 @ Nocturne 上等兵 (262 威望)
分享到:

1个回答

0 投票

那本书是很多很多很多年以前写的,开始写的时候甚至C标准(c89)都还没制定完(86年的素材,88年出版),所以这里的情况很可能指的是当时的一些编译器(你可以试试TurboC 2.0)。现在主流的C编译器都可以正确给出提示(WARNING/ERROR),所以不用太关注这个问题。

用户头像 回复 2013年 11月14日 @ Lux 上等兵 (267 威望)
提一个问题:

相关问题

0 投票
1 回复 53 阅读
0 投票
1 回复 1 阅读
用户头像 提问 2014年 6月7日 @ 卫宫士郎 上等兵 (173 威望)
+1 投票
1 回复 63 阅读
0 投票
1 回复 54 阅读
用户头像 提问 2012年 12月1日 @ Olaf 上等兵 (366 威望)
0 投票
1 回复 16 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...