1. 程式人生 > >關於JAVA中Byte數據類型二進制賦值運算報錯問題

關於JAVA中Byte數據類型二進制賦值運算報錯問題

新手 pan 更新 can ava 結果 報錯 span 類型

自從JDK7更新之後,新增了二進制變量的表示,支持將整數類型用二進制來表示,用0b開頭;

例如: byte b= (byte) 0b0000_0001;

short s = (short) 0b0000_0000_0000_0001;

新手在這個時候會遇到一個問題,為啥byte b=0b000_00001會報錯(cannot convert from int to byte)

而short b=0b000_00001又不會呢?既然java底層默認0b000_00001是int類型,為什麽short可以呢?

有的人說是byte是字節數據類型,short是短整數據類型,個人認為不太準確。所以我們在做個試驗:

試驗1:short s=0b0000_0000_0000_0001;//系統報錯(cannot convert from int to byte);

這個結果出來想必大家都有些眉目了,在二進制中最高位被定義為符號位,byte共有8個比特位,我們給它

0b0000_0001時

關於JAVA中Byte數據類型二進制賦值運算報錯問題