二進位制表示負數的方法 「 補數 」

2021-10-04 16:24:14 字數 988 閱讀 1278

在十進位制中表示正負數會有專門的符號來區分,而在二進位制中,怎樣表示正負數呢???

在二進位制中表示負數時,一般會把位權的最高位上的數字作為符號來使用,因此,位權的最高位也稱為符號位

符號位為 0,表示正數;符號位為 1,表示負數

例:我們都知道十進位制數 1, 用二進位制表示是:0000 0001,那麼,-1用二進位制怎麼表示呢?

可能有人會說,把0000 0001的符號位變成1不就完了嗎? 也就是表示成這樣:1000 0001

真的是這樣嗎?

我們都知道:1 + (-1)= 0,那麼我們將用二進位制表示的1和-1相加,看看等不等於0:

0000 0001 + 1000 0001 = 1000 0010 (十進位制表示是 -128)

那 -1用二進位制表示是怎樣的呢?

這裡我們用到的方法叫做「二進位制的補數」,補數就是用正數來表示負數。而求補數的方法叫做「取反加一」。

取反加一法可以分成兩步來計算:第一步:取反。 在二進位制數中,只有0和1;我們將0變成1,將1變成0,就叫取反。

第二步:加一。 將取反得到的數+1.

例如,要用八位二進位制數表示 -1,就得先求得 1的二進位制數,也就是0000 0001,然後用0000 0001的補數來表示 -1。 先取反:1111 1110,再加一:1111 1111。 驗證:0000 0001 + 1111 1111 = 1 0000 0000 在這裡,出現了最高位溢位的情況,也就是說在八位的範圍內進行運算時,1 0000 0000中的 1 溢位,1 0000 0000就被計算機認為是0000 0000了

這裡也請大家記住乙個法則:將二進位制的數取反加一後,與原來的值相加,結果為0

注:當運算結果為負數時,該結果為補數表示形式。例如:十進位制運算 6 - 9 = -3,如果用二進位制數進行運算的話,-3將會被補數形式表示。

負數二進位制表示

負數在計算機中用補碼表示。這是教科書上到表示,由於時間久遠,又由於上課沒好好學,以至於補碼是啥,在心中沒留下任何到痕跡,補習一下。原碼 整數在記憶體中用原碼表示,即按絕對值大小轉換成二進位制 如 b 00000101 b 是 b 5 b 到二進位制表示 反碼 將二進位制數按位取反,所得的新二進位制數...

負數的二進位制表示方法

有興趣的可以去原作者處看看 今天在看base64編碼轉換時,既然對負數的二進位制表示有些遺忘,在網上找了一下資料,貼出來已備在此遺忘 假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,...

負數的二進位制表示方法

今天在看base64編碼轉換時,既然對負數的二進位制表示有些遺忘,在網上找了一下資料,貼出來已備在此遺忘 假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int型別的數占用4位元...