知識儲備
①在Java中,byte的表示是以補碼形式存在的,取值範圍為-128~127,它沒有unsigned類型
②byte大小為8bit,int大小為32bit
③當byte要轉化成int時,會自動填充符號位至32bit
轉化的問題
JVM默認的byte轉int是填充符號位,即保證數值不變,例如
public static void main(String args[]) {
byte b = -12;
int i = b;
system.out.println(i); //輸出結果為-12
}
但有時候我們要的是byte裏邊的信息不變,即前邊填充0,例如
public static void main(String args[]) {
byte b = -12;
int i = b & 0xff;
System.out.println(i); //輸出244,即由符號位變為無符號位
}
補充
Byte.toUnsignedInt(byte b)起到和 & 0xff 同樣的效果
Tags: public Java 信息 知識
文章來源: