JAVA 基礎系列
計算機對有符號數(包括浮點數)的表示有三種方法:原碼、反碼和補碼,三種表示方法均有符號位和數值位兩部分,符號位都是用0表示“正”,用1表示“負”
反碼:原碼按位取反
補碼:反碼+1
移碼:移碼(又叫增碼)是符號位取反的補碼
對於負數而言,是以補碼的形式存儲在內存中的。以-7(int)爲例
第一步:將-7的絕對值轉化爲二進制 0000 0111
第二步:將上面的二進制以反碼錶示 1111 1000
第三步:轉化爲補碼:11111111111111111111111111111001
這個二進制的值可以通過Integer.toBinaryString()來獲取。int 在內存中佔用4個字節
代碼:
public static void main(String[] args) {
int d = -7; //
System.out.print(""+Integer.toBinaryString(d)+" \n");
}
輸出結果:
11111111111111111111111111111001