二進制的減法采用補碼運算,二進制的減法怎么計算

大家好,今天小編來為大家解答二進制的減法采用補碼運算這個問題,二進制的減法怎么計算很多人還不知道,現在讓我們一起來看看吧!二進制的減法運算二進制數的減法運算,從高位借1...
大家好,今天小編來為大家解答二進制的減法采用補碼運算這個問題,二進制的減法怎么計算很多人還不知道,現在讓我們一起來看看吧!
二進制的減法運算
二進制數的減法運算,從高位借1過來,則當2。例如:1110-1001,個位不夠減,從高位借1過來當2,減去1剩1得0101。例如:1100-1001得0011(計算機內,減法用加補碼的方法用加法器運算。不同于手算。)
二進制之間的運算一定要用補碼嗎
因為補碼表示法中0的表示是唯一的,而原碼和反碼表示時有+0和-0的區別,若用原碼或反碼進行計算,需要對結果進行修正,補碼則不需要。兩個數補碼的和等于和的補碼,兩個數差的補碼等于被減數補碼與減數相反數補碼的和。利用補碼運算可以將減法轉化成加法計算。這樣在運算器實現時可以用加法器通過簡單變換即可實現減法運算!
為什么計算機中帶符號數采用補碼表示
丟開教科書式的概念,想想為什么要有補碼這個東西,為什么符號位會產生。定義:
原碼表示法是機器數的一種簡單的表示法。其符號位用0表示正號,用:表示負號,數值一般用二進制形式表示。
機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,并在未位加1而得到的。
如果是為了考試,死記即可。但我總想搞清楚為什么計算機里面的數要這樣子表達?意義何在?-128的補碼為什么是10000000?為什么補碼有這么奇怪的運算規則?計算機算減法的時候都需要從源碼到補碼的計算嗎?
思路計算機里面,只有加法器,沒有減法器,所有的減法運算,都必須用加法進行。
用補數代替原數,可把減法轉變為加法。出現的進位就是模,此時的進位,就應該忽略不計。
二進制下,有多少位數參加運算,模就是在1的后面加上多少個0。
補碼就是按照這個要求來定義的:正數不變,負數即用模減去絕對值。
補充解釋一下“模”的概念,可以參照離散數學里面的環:考慮時鐘上時間的計算,假設現在時針指向數字3,若問“6小時前時針指向的數字是幾”,則可以:1.將時針逆時針撥動6格。2.將時針順時針撥動12-6=6格。兩者的結果是一樣的。這里稱12為“模”。故有3時-6個小時=3時+(12-6個小時),這里可以看到將減法轉換成加法的過程,即“加上模減去絕對值的差”。所以,假設模是10,有效位數為1,當我們計算9-7的時候:9-7=>9+(10-7)=12,去掉最高的位后,得到2,這是正確的結果。作者的意思是說,計算機里面所有數都以補碼形式保存,加減運算都是補碼之間的加法運算。然后作者提出了一個我之前沒聽過的觀點:
補數和補碼的定義式里面,根本就沒有什么符號位。這最高位的1、0是自然出現的,并不是由人來規定的。
的確,符號位在補碼運算里面是“模”,本身并不帶符號的意義。因為計算機將加法轉換成加上一個“負數”,而負數又以補碼的形式表現。補碼比源碼多一位,從這多出來的一位可以推斷出原來數字的正負號,所以成為了符號位。也可以這樣認為,留出一位(不全部占滿)的原因是要用“模”來表示正負數。
也就是說,不是特意留出一個符號位,用1和0來表示正負號。而是補碼運算可以用最高位來表示正負,所以符號位誕生了。
那么為什么-128的補碼是10000000?可以這樣理解。-128是一個負數,所以它的補碼是它的“模”減去它的絕對值,即:
那么為什么負數補碼等于源碼的反碼加一呢?可以這樣推導:
由此我們得知,在計算機里面所有的數字都以補碼形式存儲。127存成01111111,-127存成11111111,算減法就變成算加法了,盡管你看到的是“-”號。
二進制補碼運算結果是二進制嗎
二進制補碼運算結果是二進制。
如4的二進制0100,7的二進制為0111,-7的補碼為1001,3的二進制0011,-3的補碼為1101,4-7=01001001=1101,原理則是計算機中的負數的表示方式是最好位是符號位,減法運算其實就是加法的運算,即416-7的二進制運算
加減法計算為什么使用補碼,補碼到底是怎
補碼的出現是為了滿足二進制負數數據以及減法運算。
因為加法運算相對電子計算機更加簡潔,所以我們可以將減法運算通過補碼轉換成加法運算,以實現簡化電路。
補碼定義為(N)補=R^n-N,其中R為數值,n為位數。我們以十進制為例,想要計算84-36,那么只需要計算84+(46)補-10^2=84+64-100=48。以此在計算中發到負數變正數,減法變加法的目的。
計算機二進制減法的運算過程
二進制的加法按二進制的加法規則進行(對齊各位進行,相當于我們做豎式的加法):
0+0=0
0+1=1
1+0=1
1+1=10
二進制的減法運算可按照加法運算的逆運算進行:
10-1=1(借位)
1-1=0
1-0=1
0-0=0
實際上在計算機內部做減法時是用加法做的(-123就是+(-123))。這個具體細節就不容易說清楚了。需要學習二進制補碼的知識和計算機組成原理才行。
文章分享結束,二進制的減法采用補碼運算和二進制的減法怎么計算的答案你都知道了嗎?歡迎再次光臨本站哦!
本文鏈接:http://xinin56.com/kaifa/1199.html