在計(jì)算機(jī)內(nèi)部,所有信息都是用二進(jìn)制數(shù)串的形式表示的。整數(shù)通常都有正負(fù)之分,計(jì)算機(jī)中的整數(shù)分為無符號的和帶符號的。無符號的整數(shù)用來表示0和正整數(shù),即自然數(shù);帶符號的正數(shù)可以表示所有的整數(shù)。
創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元謝家集做網(wǎng)站,已為上家服務(wù),為謝家集各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
由于計(jì)算機(jī)中符號和數(shù)字一樣,都必須用二進(jìn)制數(shù)串來表示,因此,正負(fù)號也必須用0、1來表示。通常我們用最高的有效位來 表示數(shù)的符號(當(dāng)用8位來表示一個整數(shù)時,第8位即為最高有效位,當(dāng)用16位來表示一個整數(shù)時,第16位即為最高有效位。)0表示正號、1表示負(fù)號。
這種正負(fù)號數(shù)字化(0表示正號、1表示負(fù)號)的機(jī)內(nèi)表示形式就稱為機(jī)器碼或者機(jī)器數(shù),而相應(yīng)的機(jī)器外部用正負(fù)號表示的數(shù)稱為真值。將一個真值表示成二進(jìn)制字串的機(jī)器數(shù)的過程就稱為編碼
。
無符號數(shù)沒有原碼、反碼和補(bǔ)碼一說。只有帶符號數(shù)才存在不同的編碼方式。帶符號整數(shù)有原碼、反碼、補(bǔ)碼等幾種編碼方式。
**原碼即直接將真值轉(zhuǎn)換為其相應(yīng)的二進(jìn)制形式,而反碼和補(bǔ)碼是對原碼進(jìn)行某種轉(zhuǎn)換編碼方式。**正整數(shù)的原 碼、反碼和補(bǔ)碼都一樣,負(fù)數(shù)的反碼是對原碼的除符號位外的其他位進(jìn)行取反后的結(jié)果(取反即如果該位為0則變?yōu)?,而該位為1則變?yōu)?的操作)。而補(bǔ)碼是先求原碼的反碼,然后在反碼的末尾位加1 后得到的結(jié)果,即補(bǔ)碼是反碼+1。IBM-PC中帶符號整數(shù)都采用補(bǔ)碼形式表示。
注意,只是帶符號的整數(shù)采用補(bǔ)碼存儲表示的,浮點(diǎn)數(shù)另有其存儲方式。
對于字長為8位有符號的int,因?yàn)樽罡邽榉栁?,?位,所以最小為()2 = (-127)10,最大為(0)2 = (127)10;即其原碼范圍為:-127~127
有符號的8位二進(jìn)制的原值表達(dá)范圍為:-127至127,此時共255個數(shù)字;然而,8位二進(jìn)制 的補(bǔ)碼排列共有$A_{2}^{8}$ = 256個,0000 0000 至1111 1111 。
補(bǔ)碼組合 | 范圍 | 個數(shù) |
---|---|---|
0000 0000 - 0111 1111 | 0 ~+127 | 128 |
多余的一種組合待定 | 1 | |
1000 0001 - 1111 1111 | -1~-127 | 127 |
****看似要被浪費(fèi)掉了啊!其實(shí)不然,( ) 2 = ( 2^7 ) 10 = ( 128 ) 10,這個組合要利用起來,不能太偏離數(shù)值意義,表示128,顯得更直觀。