问一个问题,123==0123==0x123?
第一次看到这个问题的时候,基本上是不假思索地给出了前一个等号成立而后一个不成立的结论.但是答案却是它们都是错的,这三个数各不相等!不信?那就自己试试吧.
如果你真的去尝试了,会发现123还是123,但是0123会等于83,0x123等于291.当然,第一个和最后一个(16进制)我们不会有什么疑问,但是第二个真的令人费解.猜测一下,为什么.
下面公布答案:
看见了吧,原因在于他们属于不同的进制.
可是为什么0123=83 ,被认定为八进制呢?这跟常理不合啊,还有,八进制不是用o么,怎么是零?
实际上,都可以,0和o长得很像,容易被混淆,况且一般也不会有人在写十进制的时候加上前导零,索性就都定义为八进制.
看来,什么事都不能想当然,还是要多学,多实践才行啊.