foreach取buf里面的每一個byte以后,為什么還要&0xff,一個byte不是已經(jīng)8bit了嗎
?? ???? for(byte b:buf){
?? ??? ??? ?System.out.print(Integer.toHexString(b & 0xff)+" ");
?? ??? ?}
?? ???? for(byte b:buf){
?? ??? ??? ?System.out.print(Integer.toHexString(b & 0xff)+" ");
?? ??? ?}
2017-01-05
舉報
2017-01-05
byte b = -13;
System.out.println(Integer.toHexString(b));// fffffff3
System.out.println(Integer.toHexString(b & 0xff));// f3
2017-01-05
byte可能是負數(shù)(比如中文對應的字節(jié)),而toHexString(int b)的參數(shù)是int類型,所以可以使用0xff將高位的都清除,只剩地位的8個bit。