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

2021-08-29 22:09:37 字數 2397 閱讀 7078

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。剩下的就是這個數的絕對值部分,可以採用原碼 反碼 補碼3種形式來表示絕對值部分。原碼最簡單,也最好理解。原碼就是絕對值的二進位製數形式 例如 7的8位二進位制原碼是00000111,7的8位二進位...

有關二進位制,什麼是二進位制

方法就是採用整數部分除以基數2和小數部分乘以基數2取整的方法!例如要把41轉化成二進位制的 2 41 餘1 最低位。2 1 1 最高位。結果就等於101001 例2 把小數轉化成二進位制。取0 取1 取1結果為。把1000轉化為十進位制等於8 因為17大於8 所以17 十進位制 大於 1000 二進...

什麼是二進位制計數法 二進位製數怎麼算?

問題一 什麼是二進位制計數法。要詳細。我是新手。十進位制是 逢十進一。二進位制就是 逢二進一。比如 十進位制下 2 2 4 二進位制下 2換算成二進位制,根據 逢二進一,2 10 換算成了 10 2 10 10 20 又根據逢二進一 10 10 100 逢二進一 就是二進位制的 最根本原理,說白了和...