原始碼反碼補碼補充

2022-03-14 20:51:37 字數 1128 閱讀 6559

符號整數型別的範圍:

整數型別:byte,short,int,long

byte: 8 位 -128--->127

short 16位 -32768--->32767

int   32位 -2147483648-->2147483647

long  64位  -9223372036854775808 --> 9223372036854775807

為什麼是這樣這樣的範圍:

原碼:講乙個數轉換為二進位制,加上符號位就是原碼(0表示整數,1表示負數)

反碼;整數的反碼就是其原碼,負數的反碼就是除符號外,每位取反。

補碼:整數的補碼就是其原碼,負數的補碼是其反碼加一。

例如:      單位元組5,-5的原碼為:0000 0101      1000 0101c

5,-5的反碼為:0000 0101      1111 1010

5,-5的補碼為:0000 0101      1111 1011  

為什麼計算機要用補碼表示負數。

優點:1防止有「倆個零」。八位本來可以表示256個資料,如果用原碼表示,0000 0000 和 1000 0000都表示零。

補碼 0000 0000 和 1111 1111都表示零,這就有點奇怪了。但是用補碼表示呢?只有0000 0000 這一種表示方法。

2方便計算機運算:

求補運算:

2正數的求補方法和負數的求補方法相同如。

-5的補碼      逐位求反    加一得5的補碼    

-5 -> 5: 1111 1011 -> 0000 0100 -> 0000 0101

5的補碼      逐位求反    加一得-5的補碼   

5 -> -5: 0000 0101 -> 1111 1010 -> 1111 1011

2方便運算,變減法為加法。

3.....

這些只需要了解一下即可。

回歸原題;為什麼8位的byte型資料為什麼範圍是-128到127呢,了解了這個知識點我們就知道了。

8位補碼最大為:0111 1111(127) 最小為:1000 0000(-128)

16位,32位,64位類似。

所以,n位型別表示有符號數範圍為 -(2^(n-1))->2^(n-1)-1

原始碼 補碼 反碼

原始碼 補碼 反碼 大家都知道資料在計算機中都是按位元組來儲存了,1個位元組等於8位 1byte 8bit 而計算機只能識別0和1這兩個數,所以根據排列,1個位元組能代表256種不同的資訊,即28 0和1兩種可能,8位排列 比如定義乙個位元組大小的無符號整數 unsigned char 那麼它能表示...

原始碼,反碼,補碼

字長8位的補碼範圍是 128 127,128的補碼是10000000,0的補碼是000000,這些都是定義規定的,不能用一般的計算方法得出 補碼的設計目的是 使符號位能與有效值部分一起參加運算,從而簡化運算規則.使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 1 原碼 反碼和補碼的表示...

原始碼 補碼 反碼

大家都知道資料在計算機中都是按位元組來儲存了,1個位元組等於8位 1byte 8bit 而計算機只能識別0和1這兩個數,所以根據排列,1個位元組能代表256種不同的資訊,即2 8 0和1兩種可能,8位排列 比如定義乙個位元組大小的無符號整數 unsigned char 那麼它能表示的是0 255 0...