問題描述
我覺得這是一個比較有趣的事情…我覺得大多數初學者在編程過程中都不會在源代碼裏用除了十進制的其它進制寫常量,但是當我在做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不是迴文!!!