在計算機中,正數的補碼是其本身 負數的補碼是符號位不變 其他位取反之後加1,即負數以其正值的補碼形式表達。
原碼:一個整數,按照絕對值大小轉換成的二進制數,稱爲原碼。
反碼:將二進制數按位取反,所得的新二進制數稱爲原二進制數的反碼。
補碼:反碼加1稱爲補碼。也就是說,要得到一個數的補碼,先得到反碼,然後將反碼加上1,所得數稱爲補碼。
要點:
>> 是帶符號右移
>>> 是無符號右移.
public class LowFourBit {
public static void main(String[] args) {
//十進制轉換成二進制輸出,即輸入一個十進制數,然後將其以二進制的形式輸出。
String str = Integer.toBinaryString(15);
System.out.println("15的二進制爲:" + str);
//System.out.println("15的二進制爲:" + Integer.toBinaryString(15));//簡單寫法
//十進制轉換成十六進制輸出,即輸入一個十進制數,然後將其以十六進制的形式輸出。
str = Integer.toHexString(15);
System.out.println("15的十六進制爲:" + str);
//獲取數字20的二進制的最低四位
int num = 20;
System.out.println("20的二進制爲:" + Integer.toBinaryString(20));
int lowFourBit = num & 15;
System.out.println("20的二進制低四位爲:" + Integer.toBinaryString(lowFourBit));
//在前一步的基礎上,獲取數字20的下一組低四位
//方法:將20的二進制右移四位
lowFourBit = num >>> 4;
System.out.println("20的二進制下一組低四位爲:" + Integer.toBinaryString(lowFourBit));
}
}