java位操作符的知識

二進制負數以它正值的補碼形式表達

java位操作符的知識

補碼:反碼+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(上面已經提到爲什麼這樣表示)