AdaMaYun 发表于 2024-7-30 12:00

意想不到的八进制


将一个整形常量赋值给变量,代码如下所示:

int a=34, b=034;
变量a和b相等吗?

答案是不相等的。我们知道,16进制常量以’0x’为前缀,10进制常量不需要前缀,那么8进制呢?它与10进制和16进制表示方法都不相同,它以数字’0’为前缀,这多少有点奇葩:三种进制的表示方法完全不相同。

如果8进制也像16进制那样以数字和字母表示前缀的话,或许更有利于减少软件Bug,毕竟你使用8进制的次数可能都不会有误使用的次数多!下面展示一个误用8进制的例子,最后一个数组元素赋值错误:

a=106;       /*十进制数106*/
a=112;      /*十进制数112*/   
a=052;       /*实际为十进制数42,本意为十进制52*/

suncat0504 发表于 2024-7-30 19:50

八进制,在程序中很少用到了。作为知识点,掌握它还是很有必要的。
页: [1]
查看完整版本: 意想不到的八进制