官术网_书友最值得收藏!

1.4 帶符號(hào)數(shù)的表示及轉(zhuǎn)換(8位)

計(jì)算機(jī)(或PLC)中要表示的數(shù)有不帶符號(hào)數(shù)(沒有正負(fù)之分,只有零和正數(shù))和帶符號(hào)數(shù)(有正有負(fù)有零),不可能用正號(hào)或負(fù)號(hào)來表示一個(gè)數(shù)的極性。如圖1-3所示,最右邊的最低位標(biāo)為b0(稱為第0位,不是第1位),最高位標(biāo)為b7(稱為第7位)。

1.不帶符號(hào)數(shù)的表示

8位全用來表示大小,可以表示的十進(jìn)制數(shù)的范圍是0~255。

例:01001101=4DH=77。11111111=FFH=255。01111111=7FH=127。10000000=80H=128

2.符號(hào)數(shù)的表示

如果用8位二進(jìn)制數(shù)表示有正有負(fù)的數(shù),就需要用8位中的一位表示數(shù)的正負(fù)。規(guī)定:最高位b7是符號(hào)位,b7=0表示“+”,b7=1表示“-”。其余各位(b6~b0)為數(shù)值位。對(duì)于數(shù)值位,又有如下的原碼、反碼、補(bǔ)碼之分:

(1)原碼 其余各位(b6~b0)表示該數(shù)的絕對(duì)值。原碼所能表示十進(jìn)制數(shù)的范圍是-127~+127。

978-7-111-38174-7-Chapter01-23.jpg

(2)反碼 正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼:符號(hào)位(b7)仍為1,其余各位是將該負(fù)數(shù)的原碼對(duì)應(yīng)的各位取反。

978-7-111-38174-7-Chapter01-24.jpg

(3)補(bǔ)碼 正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼:符號(hào)位(b7)仍為1,其余各位是將該負(fù)數(shù)的反碼末位加1。

方法一:(X)補(bǔ)=(X)反+1

978-7-111-38174-7-Chapter01-25.jpg

8位二進(jìn)制數(shù)補(bǔ)碼可以表示的十進(jìn)制數(shù)的范圍是+127~-128(01111111~10000000或7FH~80H)

可以看出,正數(shù)的原碼、反碼、補(bǔ)碼都是相同的,負(fù)數(shù)的原碼、反碼、補(bǔ)碼各不相同。由負(fù)數(shù)的原碼求補(bǔ)碼,除了先由原碼求反碼,再由反碼求補(bǔ)碼的方法之外,還可以直接由原碼求補(bǔ)碼:

方法二:利用公式(-X)補(bǔ)=100H-X。注意,式中-X是負(fù)數(shù),X是正數(shù)。

由于8位二進(jìn)制數(shù)補(bǔ)碼所能表示的負(fù)數(shù)范圍是-1~-128,此公式只適用于計(jì)算-1~-128的負(fù)數(shù)的補(bǔ)碼。如果要計(jì)算16位二進(jìn)制數(shù)負(fù)數(shù)的補(bǔ)碼,應(yīng)當(dāng)用公式(-X)補(bǔ)=10000H-X

978-7-111-38174-7-Chapter01-26.jpg

可以看到,負(fù)數(shù)的絕對(duì)值越小,它的補(bǔ)碼看起來越大。

3.轉(zhuǎn)換(只適用于負(fù)數(shù))

(1)反→原反反得原((X)反)反=(X)原

(2)補(bǔ)→原補(bǔ)補(bǔ)得原((X)補(bǔ))補(bǔ)=(X)原

另外,還有一個(gè)規(guī)律:(XY)補(bǔ)=(X)補(bǔ)+(-Y)補(bǔ),由于計(jì)算機(jī)中的硬件電路只有加法器(全加電路),沒有減法電路,這個(gè)規(guī)律可以把減法化為加法來計(jì)算,所以計(jì)算機(jī)中的數(shù),如果不特別聲明,一律是補(bǔ)碼。

例:((-86)補(bǔ))補(bǔ)=(10101010)補(bǔ)=11010110=(-86)原

例:X=34,Y=68,則X-Y=-34在計(jì)算機(jī)中的結(jié)果為(-34)補(bǔ)=100H-22H=DEH=11011110

實(shí)際上,在計(jì)算機(jī)中(XY)補(bǔ)=(34-68)補(bǔ)=(34)補(bǔ)+(-68)補(bǔ)=22H+BCH=DEH=11011110

也可直接相減:34-68=22H-44H=DEH=11011110

主站蜘蛛池模板: 玉龙| 威海市| 吉安县| 同仁县| 峨边| 吉木萨尔县| 武邑县| 青铜峡市| 宕昌县| 通江县| 磐安县| 山丹县| 汨罗市| 七台河市| 永登县| 云梦县| 松桃| 固镇县| 井陉县| 茌平县| 迁安市| 东阿县| 治多县| 杭锦后旗| 肥乡县| 庆元县| 平潭县| 勐海县| 桓仁| 黔东| 中卫市| 高碑店市| 大城县| 临清市| 大厂| 化隆| 墨竹工卡县| 朝阳市| 苏尼特左旗| 平度市| 双辽市|