溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言中數(shù)據(jù)存儲(chǔ)方式是什么

發(fā)布時(shí)間:2022-04-02 14:41:11 來(lái)源:億速云 閱讀:135 作者:iii 欄目:移動(dòng)開發(fā)

這篇文章主要介紹“C語(yǔ)言中數(shù)據(jù)存儲(chǔ)方式是什么”,在日常操作中,相信很多人在C語(yǔ)言中數(shù)據(jù)存儲(chǔ)方式是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C語(yǔ)言中數(shù)據(jù)存儲(chǔ)方式是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

一、源碼

一個(gè)數(shù)的原碼(原始的二進(jìn)制碼)有如下特點(diǎn):

  • 最高位做為符號(hào)位,0表示正,為1表示負(fù)

  • 其它數(shù)值部分就是數(shù)值本身絕對(duì)值的二進(jìn)制數(shù)

  • 負(fù)數(shù)的原碼是在其絕對(duì)值的基礎(chǔ)上,最高位變?yōu)?

下面數(shù)值以1字節(jié)的大小描述:

十進(jìn)制數(shù)

原碼

+15

0000 1111

-15

1000 1111

+0

0000 0000

-0

1000 0000

注:原碼表示法簡(jiǎn)單易懂,與帶符號(hào)數(shù)本身轉(zhuǎn)換方便,只要符號(hào)還原即可,但當(dāng)兩個(gè)正數(shù)相減或不同符號(hào)數(shù)相加時(shí),必須比較兩個(gè)數(shù)哪個(gè)絕對(duì)值大,才能決定誰(shuí)減誰(shuí),才能確定結(jié)果是正還是負(fù),所以原碼不便于加減運(yùn)算。

二、反碼

對(duì)于正數(shù),反碼與原碼相同

對(duì)于負(fù)數(shù),符號(hào)位不變,其它部分取反(1變0,0變1)

十進(jìn)制數(shù)

反碼

+15

0000 1111

-15

1111 0000

+0

0000 0000

-0

1111 1111

注:反碼運(yùn)算也不方便,通常用來(lái)作為求補(bǔ)碼的中間過(guò)渡。

三、補(bǔ)碼

1、補(bǔ)碼說(shuō)明

在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來(lái)存儲(chǔ)。

補(bǔ)碼特點(diǎn):

  • 對(duì)于正數(shù),原碼、反碼、補(bǔ)碼相同

  • 對(duì)于負(fù)數(shù),其補(bǔ)碼為它的反碼加1

  • 補(bǔ)碼符號(hào)位不動(dòng),其他位求反,最后整個(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ǔ)碼來(lái)存儲(chǔ),主要原因是:

統(tǒng)一了零的編碼

將符號(hào)位和其它位統(tǒng)一處理

將減法運(yùn)算轉(zhuǎn)變?yōu)榧臃ㄟ\(yùn)算

兩個(gè)用補(bǔ)碼表示的數(shù)相加時(shí),如果最高位(符號(hào)位)有進(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

說(shuō)明:不管以原碼方式存儲(chǔ),還是以反碼方式存儲(chǔ),0也有兩種表示形式。但是如果以補(bǔ)碼方式存儲(chǔ),補(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、符號(hào)位 正數(shù):0

2、符號(hào)位 負(fù)數(shù):1

3、補(bǔ)碼計(jì)算結(jié)果,符號(hào)位超出大小限制則省略符號(hào)位

4、補(bǔ)碼結(jié)果:開頭數(shù)字是1時(shí)、根據(jù)負(fù)數(shù)規(guī)則轉(zhuǎn)為源碼、開頭0是為正數(shù)轉(zhuǎn)換

5、正數(shù):源碼、反碼、補(bǔ)碼、相同

6、負(fù)數(shù)源碼轉(zhuǎn)反碼:符號(hào)不變,其他位0變?yōu)?、1變?yōu)?

7、負(fù)數(shù)反碼轉(zhuǎn)補(bǔ)碼:反碼的結(jié)果之上加1

8、加完或減完結(jié)果 不能大于或小于負(fù)的127

到此,關(guān)于“C語(yǔ)言中數(shù)據(jù)存儲(chǔ)方式是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI