二進制負數以它正值的補碼形式表達
補碼:反碼+1等於補碼
比如:tln(naryString(-5));
打印:1111 1111 1111 1111 1111 1111 1111 1011 不用想了肯定是32位
過程是這樣的:
一個負數,比如-5,它的二進制在java裏面是這樣表示
1000 0000 0000 0000 0000 0000 0000 0101
它的正值是:
0000 0000 0000 0000 0000 0000 0000 0101
反碼是:
1111 1111 1111 1111 1111 1111 1111 1010
再加上1是:
1111 1111 1111 1111 1111 1111 1111 1011
即得到打印的內容
java ~ 操作符,對每個二進制位的內容求反,即1變成0,0變成1
測試負數:
int a = -5;//101;
tln(~a);
打印:
過程是這樣的,首先表示出來這個負數
1111 1111 1111 1111 1111 1111 1111 1011(上面已經提到爲什麼這樣表示)