二进制补码
-----------siwuxie095
? ?
? ?
? ?
? ?
? ?
1、概述
? ?
? ?
? ?
? ?
? ?
? ?
2、補(bǔ)碼規(guī)則
? ?
? ?
如下:
? ?
(1)
? ?
? ?
? ?
(2)
? ?
? ?
? ?
? ?
四位二進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制數(shù)補(bǔ)碼和非補(bǔ)碼表:
? ?
二進(jìn)制數(shù) | 十進(jìn)制數(shù)補(bǔ)碼 | 十進(jìn)制值 |
0000 | 0 | 0 |
0001 | +1 | 1 |
0010 | +2 | 2 |
0011 | +3 | 3 |
0100 | +4 | 4 |
0101 | +5 | 5 |
0110 | +6 | 6 |
0111 | +7 | 7 |
1000 | -8 | 8 |
1001 | -7 | 9 |
1010 | -6 | 10 |
1011 | -5 | 11 |
1100 | -4 | 12 |
1101 | -3 | 13 |
1110 | -2 | 14 |
1111 | -1 | 15 |
? ?
? ?
? ?
? ?
? ?
3、為什么使用補(bǔ)碼
? ?
? ?
? ?
? ?
? ?
? ?
? ?
4、補(bǔ)碼運(yùn)算的特征
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
5、補(bǔ)碼運(yùn)算的原理
? ?
? ?
? ?
? ?
? ?
? ?
? ?
小擴(kuò)展:
? ?
正數(shù)的原碼、反碼、補(bǔ)碼都相同
? ?
負(fù)數(shù)的反碼是在原碼的基礎(chǔ)上,最高位(符號(hào)位)不變,其他位取反
? ?
負(fù)數(shù)的補(bǔ)碼是在反碼的基礎(chǔ)上,再加 1
? ?
(也可以直接將此負(fù)數(shù)對(duì)應(yīng)的正數(shù)原碼,所有位取反再加 1)
? ?
? ?
模 是指一個(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍,如時(shí)鐘(計(jì)量范圍:0~11,模=12)。
計(jì)算機(jī)也可以看做一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量范圍,即都存在一個(gè) 模。
? ?
模實(shí)質(zhì)上是計(jì)量器產(chǎn)生溢出的量。它的值在計(jì)量器上表示不出來(lái),計(jì)量器上
只能表示出模的余數(shù)(如時(shí)鐘的模=12表示不出來(lái),不在0~11中)
? ?
任何有模的計(jì)量器,均可化減法為加法運(yùn)算(如時(shí)鐘的順逆撥動(dòng),當(dāng)時(shí)針
在10點(diǎn),要撥到6點(diǎn),可以順撥 8,「10+8=12+6=6」也可以逆撥 4,
「10-4=6」,即在12為模的系統(tǒng)中,減4和加8的效果一樣,凡是減4運(yùn)算
都可以用加8代替,對(duì)模12而言,8和4互為補(bǔ)數(shù))
? ?
在二進(jìn)制中,正數(shù)和對(duì)應(yīng)的負(fù)數(shù)相對(duì)于 模 2n來(lái)說(shuō),互為補(bǔ)數(shù)
〔即 模的二進(jìn)制減去正數(shù)的二進(jìn)制補(bǔ)碼即為負(fù)數(shù)的二進(jìn)制補(bǔ)碼〕
? ?
? ?
? ?
另:負(fù)數(shù)補(bǔ)碼的其他求法
? ?
(1)負(fù)數(shù)補(bǔ)碼 = 2n- 對(duì)應(yīng)正數(shù)的補(bǔ)碼
(2)將對(duì)應(yīng)正數(shù)的二進(jìn)制補(bǔ)碼進(jìn)行比特反相運(yùn)算,再將結(jié)果加1
(3)先寫(xiě)出對(duì)應(yīng)正數(shù)的二進(jìn)制補(bǔ)碼:
- 先由最低比特開(kāi)始找。
- 若該比特為0,將補(bǔ)碼對(duì)應(yīng)比特填0,繼續(xù)找下一比特(較高的比特)。
- 若找到第一個(gè)為1的比特,將補(bǔ)碼對(duì)應(yīng)比特填1。
- 將其余未轉(zhuǎn)換的比特進(jìn)行比特反相,將結(jié)果填入對(duì)應(yīng)的補(bǔ)碼。
? ?
? ?
? ?
? ?
特別的數(shù)字:
有二個(gè)數(shù)字的補(bǔ)碼等于本身:一個(gè)是0,另一個(gè)為該比特可表示最大絕對(duì)值負(fù)數(shù)(即1000...)
? ?
? ?
? ?
為什么補(bǔ)碼能這么巧妙實(shí)現(xiàn)了正負(fù)數(shù)的加減運(yùn)算?
? ?
因?yàn)?#xff1a;指定n比特字長(zhǎng),那么就只有 2n個(gè)可能的值,加減法運(yùn)算都存在
上溢出與下溢出的情況,實(shí)際上都等價(jià)于模 2n 的加減法運(yùn)算
? ?
這對(duì)于n比特?zé)o符號(hào)整數(shù)類(lèi)型或是n比特有符號(hào)整數(shù)類(lèi)型都同樣適用
? ?
? ?
? ?
? ?
? ?
【made by siwuxie095】
轉(zhuǎn)載于:https://www.cnblogs.com/siwuxie095/p/6531962.html
總結(jié)
- 上一篇: 骨正基鞋垫真能治病吗
- 下一篇: 接口与抽象类的使用选择