取反什么意思?
取反,是Java與C/C++使用補碼來表示二進制數,在補碼表示中,最高位為符號位,正數的符號位為0,負數為1。
補碼的規定如下:
對正數來說,最高位為0,其余各位代表數值本身(以二進制表示),如+42的補碼為00101010。
對負數而言,把該數絕對值的補碼按位取反,然后對整個數加1,即得該數的補碼。如-42的補碼為11010110(00101010按位取反11010101+1即11010110)
用補碼來表示數,0的補碼是單一的,都為00000000。(而在原碼,反碼表示中,+0和-0的表示是不單一的,可參見相應的書籍)。而且可以用111111表示-1的補(這也是補碼與原碼和反碼的區別)。