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世紀德國數理哲學大師萊布尼茲發現...