詳細介紹負數的文章:
https://blog.csdn.net/daiyutage/article/details/8575248
1.以char類型舉例,其取值范圍是 -128 ~ 127,即-2E7 ~ 2E7-1, 用最高位表示其符號,0表示正數,1表示負數。數值以補碼形式存儲。正數的補碼就是該正數本身,負數的補碼需要轉化,如下:
1>.對負數取絕對值,用二進制表示
2>. 對每一位取反;
3>. 對該數加1。
注意:char類型的0 沒有+0 和 -0 的區分,即使想區分,按照上述操作,得到的都是 0000 0000
舉例:-1 取絕對值0000 0001 -> 取反1111 1110 ->加1得到 1111 1111
下面是一些數值的補碼格式:
-128 存儲數值 1000 0000
-127 存儲數值 1000 0001
-126 存儲數值 1000 0010
.....
-3 存儲數值 1111 1101
-2 存儲數值 1111 1110
-1 存儲數值 1111 1111
0 存儲數值 0000 0000
1 存儲數值 0000 0001
2 存儲數值 0000 0010
3 存儲數值 0000 0011
...
125 存儲數值 0111 1101
126 存儲數值 0111 1110
127 存儲數值 0111 1111