二進位制負數為什麼是正數的卻加,二進位制負數為什麼是正數的取反加1?

時間 2021-08-30 11:19:51

1樓:歷史的天空

可以使符號位能與有效值部分一起參加運算,從而簡化運算規則。

為了使減法運算變成加法運算,並進一步簡化計算機中運算單元的電路設計,所有這些轉換都是在計算機的底層進行的,而我們使用的組合語言、c語言和其他高階語言都使用原始**。得到補碼,使負數成為可加的正數。因此,負數的補碼=模組負數的絕對值。

計算機只能識別0和1,並且使用二進位制,而人們在日常生活中使用十進位制。”正如亞里士多德早些時候指出的那樣,現在廣泛使用十進位制只是因為我們大多數人的生活中都有10個手指。雖然歷史上手指計數(5,10鹼基)的做法比二元或三元計數要晚。

”為了能方便地與二進位制轉換,就使用了十六進位制(24)和八進位制1.數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了。

擴充套件資料:

反碼錶示法規定:

正數的反碼與其原碼相同;負數的反碼是對正數逐位取反,符號位保持為1.對於二進位制原碼10010求反碼:

((10010)原)反=對正數(00010)原含符號位取反=反碼11101(10010,1為符號碼,故為負)

(11101)二進位制=-2十進位制

對於八進位制:

例如,linux平臺將預設目錄許可權設定為755(rwxrxrxrx-x),八進位制設定為0755,因此umask是許可權位755的倒數,計算umask為0022的過程如下:

原始**0755=逆**0022(逐位解釋:0為符號位,0為7-7,2為7-5,2為7-5)

根據補碼錶示法,正數的補碼與原碼的補碼相同;負數的補碼是在其反碼的末尾加1。

2樓:亂七八糟

1)使符號位能與有效值部分一起參加運算,從而簡化運算規則。

2)使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。

補碼的得來是為了讓負數變成能夠加的正數,所以,負數的補碼=模-負數的絕對值。

計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,"正如亞里士多德早就指出的那樣,今天十進位制的廣泛採用,只不過是我們絕大多數人生來具有10個手指頭這個解剖學事實的結果。儘管在歷史上手指計數(5,10進位制)的實踐要比二或三進位制計數出現的晚。"。

為了能方便的與二進位制轉換,就使用了十六進位制(2 4)和八進位制1.數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了。

3樓:匿名使用者

其實說簡單點,+1的原因就是為了有符號數多出一個數的編碼,並且消除了+0與-0的表示。

如果不+1,8bits的編碼只能表示-127 ~ 127,而出現+0與-0的編碼,即00000000與10000000。

如果+1後,8bits的編碼能夠表示-128 ~ 127,並且0只有00000000一種表示,而10000000則表示-128。

4樓:匿名使用者

squalzzz 說的很對,我再補充一點吧,計算機中最基本的操作是加法器的運算(如果不清楚加法器可以去了解一下組合語言基礎)。

看一下6 00000110

-5 11111011

兩者二進位制相加,不考慮符號的話 是 1 00000001 取後八位正好是二進位制的1 ,這樣正好可以把二進位制計算化作最簡,忽略符號的考慮,令整個計算機效率上升。

5樓:沙裡波特

補碼,**於數學中【補數】。

常識:時鐘,倒撥 2 小時,可以用正撥 10 小時來代替。

兩位十進位制數(0~99),減一,可以用“加99” 代替。

如:24-1 = 23

24+99 = (1)  23

忽略進位 100,結果,就是相同的。

零和正數,不用變化。 負數,則需要求其補數。

利用補數,用加法,就可以代替減法運算了。

式中的補數 99,等於 100+(-1)。

100,是“計數系統”中,數字總個數,也稱為“模”。

----------

八位二進位制:0000 0000~1111 1111。

對應十進位制:0~255。 共有 256 個數字,模,就是 256。

負數的補碼 = 256+該負數

= 1111 1111 + 1 + 該負數= 1111 1111 + 該負數 + 1=1111 1111-負數絕對值+ 1

其中的“負數絕對值”,就是“正數”。

式中的“1111 1111-負數絕對值”,就是對“正數”取反。

式中的“+ 1”,當然就是“加 1”了。

6樓:軒轅天龍

這個需要理解,這是機器語言!沒必要糾結!知道就可以了!

關於二進位制負數的補碼,二進位制負數的補碼的原理為什麼要用補碼的形式改更負

胖大熙 求負整數的補碼,將其原碼除符號位外的所有位取反 0變1,1變0,符號位為1不變 後加1。同一個數字在不同的補碼錶示形式中是不同的。比如 15的補碼,在8位二進位制中是11110001,然而在16位二進位制補碼錶示中,就是1111111111110001。以下都使用8位2進位制來表示。例子 求...

二進位制的負數如何算,二進位制的負數如何算?

飛鷹 在二進位制碼中,採用最高位是符號位的方法來區分正負數,正數的符號位為0 負數的符號位為1。剩下的就是這個數的絕對值部分。通過將負數轉為二進位制原碼,再求其原百碼的反碼,最後求得的補碼即負數的二進位制表示結果。比如整數 1。先取1的原碼 00000000 00000000 00000000 00...

什麼是二進位制?二進位制怎麼算,二進位制是什麼意思,怎麼算

兜轉瞬間 二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數,它的基數為2,進位規則是逢二進一。二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是逢二進一,借位規則是借一當二,由18世紀德國數理哲學大師萊布尼茲發現...