问题描述
我觉得这是一个比较有趣的事情…我觉得大多数初学者在编程过程中都不会在源代码里用除了十进制的其它进制写常量,但是当我在做leetcode的“回文数字”一题时,写了个测试样例,以为int 0343可以被识别为343,从而被识别成回文数字,然鹅,并没有。。。而0343变成了。。227!
解释
在Java中,整型数据的进制书写为:
- 十进制 正常写
- 八进制 如八进制的343,要写为0343,在八进制中,0343=3*64+4*8+3=227
- 十六进制 前缀为0x或0X,如0x343=3*256+4*16+3=835
- 二进制 前缀为0b或0B,如0b101=5
进制书写中,要注意八进制只有0~7八个数,其他进制的也不能非法书写。
怪不得我测试0343不是回文!!!