小編給大家分享一下C語言中數(shù)據(jù)存儲方式知識點(diǎn)的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括寶雞網(wǎng)站建設(shè)、寶雞網(wǎng)站制作、寶雞網(wǎng)頁制作以及寶雞網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,寶雞網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到寶雞省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!C語言 數(shù)據(jù)存儲方式
一、源碼
一個(gè)數(shù)的原碼(原始的二進(jìn)制碼)有如下特點(diǎn):
最高位做為符號位,0表示正,為1表示負(fù)
其它數(shù)值部分就是數(shù)值本身絕對值的二進(jìn)制數(shù)
負(fù)數(shù)的原碼是在其絕對值的基礎(chǔ)上,最高位變?yōu)?
下面數(shù)值以1字節(jié)的大小描述:
十進(jìn)制數(shù) | 原碼 |
+15 | 0000 1111 |
-15 | 1000 1111 |
+0 | 0000 0000 |
-0 | 1000 0000 |
注:原碼表示法簡單易懂,與帶符號數(shù)本身轉(zhuǎn)換方便,只要符號還原即可,但當(dāng)兩個(gè)正數(shù)相減或不同符號數(shù)相加時(shí),必須比較兩個(gè)數(shù)哪個(gè)絕對值大,才能決定誰減誰,才能確定結(jié)果是正還是負(fù),所以原碼不便于加減運(yùn)算。
二、反碼
對于正數(shù),反碼與原碼相同
對于負(fù)數(shù),符號位不變,其它部分取反(1變0,0變1)
十進(jìn)制數(shù) | 反碼 |
+15 | 0000 1111 |
-15 | 1111 0000 |
+0 | 0000 0000 |
-0 | 1111 1111 |
注:反碼運(yùn)算也不方便,通常用來作為求補(bǔ)碼的中間過渡。
三、補(bǔ)碼
1、補(bǔ)碼說明
在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來存儲。
補(bǔ)碼特點(diǎn):
對于正數(shù),原碼、反碼、補(bǔ)碼相同
對于負(fù)數(shù),其補(bǔ)碼為它的反碼加1
補(bǔ)碼符號位不動,其他位求反,最后整個(gè)數(shù)加1,得到原碼
十進(jìn)制數(shù) | 補(bǔ)碼 |
+15 | 0000 1111 |
-15 | 1111 0001 |
+0 | 0000 0000 |
-0 | 0000 0000 |
2、補(bǔ)碼的意義
在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來存儲,主要原因是:
統(tǒng)一了零的編碼
將符號位和其它位統(tǒng)一處理
將減法運(yùn)算轉(zhuǎn)變?yōu)榧臃ㄟ\(yùn)算
兩個(gè)用補(bǔ)碼表示的數(shù)相加時(shí),如果最高位(符號位)有進(jìn)位,則進(jìn)位被舍棄
示例:用8位二進(jìn)制數(shù)分別表示+0和-0
十進(jìn)制數(shù) | 原碼 |
+0 | 0000 0000 |
-0 | 1000 0000 |
十進(jìn)制數(shù) | 反碼 |
+0 | 0000 0000 |
-0 | 1111 1111 |
說明:不管以原碼方式存儲,還是以反碼方式存儲,0也有兩種表示形式。但是如果以補(bǔ)碼方式存儲,補(bǔ)碼統(tǒng)一了零的編碼:
十進(jìn)制數(shù) | 補(bǔ)碼 |
+0 | 0000 0000 |
-0 | 10000 0000由于只用8位描述,最高位1丟棄,變?yōu)?000 0000 |
四、案例演示
模擬計(jì)算機(jī)運(yùn)算
1) 76 - 32
計(jì)算機(jī)算法:76+(-32)
2) 76
源碼:0100 1100
反碼:0100 1100
補(bǔ)碼:0100 1100
3) -32
源碼:1010 0000
反碼:1101 1111
補(bǔ)碼:1110 0000
4) 相加
1110 0000
0100 1100
5) 驗(yàn)算
結(jié)果:1 0010 1100
舍棄補(bǔ)碼:0010 1100
結(jié)果補(bǔ)碼:0010 1100
反碼:0010 1100
轉(zhuǎn)換源碼:0010 1100
注:由于舍棄補(bǔ)碼0為正數(shù),則轉(zhuǎn)換源碼與補(bǔ)碼相同。
6) 結(jié)果:44
注意事項(xiàng):
1、符號位 正數(shù):0
2、符號位 負(fù)數(shù):1
3、補(bǔ)碼計(jì)算結(jié)果,符號位超出大小限制則省略符號位
4、補(bǔ)碼結(jié)果:開頭數(shù)字是1時(shí)、根據(jù)負(fù)數(shù)規(guī)則轉(zhuǎn)為源碼、開頭0是為正數(shù)轉(zhuǎn)換
5、正數(shù):源碼、反碼、補(bǔ)碼、相同
6、負(fù)數(shù)源碼轉(zhuǎn)反碼:符號不變,其他位0變?yōu)?、1變?yōu)?
7、負(fù)數(shù)反碼轉(zhuǎn)補(bǔ)碼:反碼的結(jié)果之上加1
8、加完或減完結(jié)果 不能大于或小于負(fù)的127
看完了這篇文章,相信你對“C語言中數(shù)據(jù)存儲方式知識點(diǎn)的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。