java中負數的二進位制表示
阿新 • • 發佈:2019-01-25
計算機對有符號數(包括浮點數)的表示有三種方法:原碼、反碼和補碼,補碼=反碼+1。在二進位制裡,是用0和1來表示正負的,最高位為符號位,最高位為1代表負數,最高位為0代表正數。
以java中8位的byte為例,最大值為:0111 1111,最小值為1000 0001。
那麼根據十進位制的數字,我們如何轉換為二進位制呢?對於正數我們直接轉換即可,對於負數則有一個過程。
以負數-5為例:
1.先將-5的絕對值轉換成二進位制,即為0000 0101;
2.然後求該二進位制的反碼,即為 1111 1010;
3.最後將反碼加1,即為:1111 1011
所以Java中Integer.toBinaryString(-5)結果為11111111111111111111111111111011. Integer是32位(bit)的.
驗證程式碼:
public class Test2 {
public Test2(){
int i=-5;
System.out.println("i= "+i+" = "+Integer.toBinaryString(i)+"(B)");
}
public static void main(String[] args){
new Test2();
}
}
執行結果: