




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章數(shù)據(jù)的機(jī)器級(jí)表示
——數(shù)制和編碼、整數(shù)的表示
主要內(nèi)容數(shù)制和編碼整數(shù)的表示實(shí)數(shù)的表示各類數(shù)據(jù)之間的轉(zhuǎn)換關(guān)系你知道數(shù)碼相機(jī)拍攝一張照片的過(guò)程嗎?離散化、編碼數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)表示的三要素進(jìn)位計(jì)數(shù)制定、浮點(diǎn)表示如何用二進(jìn)制編碼即:要確定一個(gè)數(shù)值數(shù)據(jù)的值必須先確定這三個(gè)要素。例如,機(jī)器數(shù)01011001的值是多少?進(jìn)位計(jì)數(shù)制十進(jìn)制、二進(jìn)制、十六進(jìn)制、八進(jìn)制數(shù)及其相互轉(zhuǎn)換定/浮點(diǎn)表示(解決小數(shù)點(diǎn)問(wèn)題)定點(diǎn)整數(shù)、定點(diǎn)小數(shù)浮點(diǎn)數(shù)(可用一個(gè)定點(diǎn)小數(shù)和一個(gè)定點(diǎn)整數(shù)來(lái)表示)定點(diǎn)數(shù)的編碼(解決正負(fù)號(hào)問(wèn)題)原碼、補(bǔ)碼、反碼、移碼(反碼很少用)答案是:不知道!
SignandMagnitude(原碼的表示)BinaryDecimal0123456700000001001000110100010101100111
容易理解,但是:0的表示不唯一,故不利于程序員編程
加、減運(yùn)算方式不統(tǒng)一
需額外對(duì)符號(hào)位進(jìn)行處理,故不利于硬件設(shè)計(jì)
特別當(dāng)a<b時(shí),實(shí)現(xiàn)a-b比較困難從50年代開(kāi)始,整數(shù)都采用補(bǔ)碼來(lái)表示但浮點(diǎn)數(shù)的尾數(shù)用原碼定點(diǎn)小數(shù)表示BinaryDecimal-0-1-2-3-4-5-6-710001001101010111100110111101111補(bǔ)碼-模運(yùn)算(modular運(yùn)算)時(shí)鐘是一種模12系統(tǒng)假定鐘表時(shí)針指向10點(diǎn),要將它撥向6點(diǎn),則有兩種撥法:①倒撥4格:10-4=6②順撥8格:10+8=18≡6(mod12)模12系統(tǒng)中:10-4≡10+8(mod12)-4≡8(mod12)
則,稱8是-4對(duì)模12的補(bǔ)碼(即:-4的模12補(bǔ)碼等于8)。同樣有-3≡9(mod12)-5≡7(mod12)等結(jié)論2:對(duì)于某一確定的模,某數(shù)減去小于模的另一數(shù),總可以用該數(shù)加上另一數(shù)負(fù)數(shù)的補(bǔ)碼來(lái)代替。補(bǔ)碼(modular運(yùn)算):+和–的統(tǒng)一
重要概念:在一個(gè)模運(yùn)算系統(tǒng)中,一個(gè)數(shù)與它除以“?!焙蟮挠鄶?shù)等價(jià)。結(jié)論1:一個(gè)負(fù)數(shù)的補(bǔ)碼等于模減該負(fù)數(shù)的絕對(duì)值?,F(xiàn)實(shí)世界中的模運(yùn)算系統(tǒng)計(jì)算機(jī)中的運(yùn)算器是模運(yùn)算系統(tǒng)
8位二進(jìn)制加法器模運(yùn)算系統(tǒng)
計(jì)算01111111-01000000=?
01111111-01000000=01111111+(28-
01000000)=01111111+11000000=100111111(mod28)
=00111111只留余數(shù),“1”被丟棄結(jié)論1:一個(gè)負(fù)數(shù)的補(bǔ)碼等于對(duì)應(yīng)正數(shù)補(bǔ)碼的“各位取反、末位加1”[X]補(bǔ)=2n+X(-2n≤X<2n
,mod2n)求特殊數(shù)的補(bǔ)碼②[-1]補(bǔ)=2n-0…01=11…1(n個(gè)1)(mod2n)假定機(jī)器數(shù)有n位①[-2n-1]補(bǔ)=2n-2n-1=10…0(n-1個(gè)0)(mod2n)③[+0]補(bǔ)=[-0]補(bǔ)=00…0(n個(gè)0)
32位機(jī)器中,int、short、char型數(shù)據(jù)的機(jī)器數(shù)各占幾位?補(bǔ)碼與真值之間的簡(jiǎn)便轉(zhuǎn)換例:設(shè)機(jī)器數(shù)有8位,求123和-123的補(bǔ)碼表示。解:123=127–4=01111111B–100B=01111011B
–
123=–01111011B[01111011]補(bǔ)=28+01111011=100000000+01111011
=01111011(mod28),即7BH。
[–
01111011]補(bǔ)=28–01111011=100000000–01111011=11111111–01111011+1=10000100+1
=10000101,即85H。如何快速得到123的二進(jìn)制表示?各位取反,末位加1當(dāng)機(jī)器數(shù)為16位時(shí),結(jié)果怎樣?主要內(nèi)容數(shù)制和編碼整數(shù)的表示實(shí)數(shù)的表示Unsignedinteger(無(wú)符號(hào)整數(shù))機(jī)器中字的位排列順序有兩種方式:(例:32位字:0…010112)高到低位從左到右:00000000000000000000000000001011高到低位從右到左:11010000000000000000000000000000Leftmost和rightmost這兩個(gè)詞有歧義,故用LSB(LeastSignificantBit)來(lái)表示最低有效位,用MSB來(lái)表示最高有效位高位到低位多采用從左往右排列一般在全部是正數(shù)運(yùn)算且不出現(xiàn)負(fù)值結(jié)果的場(chǎng)合下,可使用無(wú)符號(hào)數(shù)表示。例如,地址運(yùn)算,編號(hào)表示,等等無(wú)符號(hào)整數(shù)的編碼中沒(méi)有符號(hào)位能表示的最大值大于位數(shù)相同的帶符號(hào)整數(shù)的最大值(Why?)例如,8位無(wú)符號(hào)整數(shù)最大是255(11111111)而8位帶符號(hào)整數(shù)最大為127(01111111)總是整數(shù),所以很多時(shí)候就簡(jiǎn)稱為“無(wú)符號(hào)數(shù)”MSBLSBSignedinteger(帶符號(hào)整數(shù),定點(diǎn)整數(shù))計(jì)算機(jī)必須能處理正數(shù)(positive)和負(fù)數(shù)(negative),MSB表示數(shù)符有三種定點(diǎn)編碼方式Signedmagnitude(原碼)
現(xiàn)用來(lái)表示浮點(diǎn)(實(shí))數(shù)的尾數(shù)One’scomplement(反碼)現(xiàn)已不用于表示數(shù)值數(shù)據(jù)Two’scomplement(補(bǔ)碼)
50年代以來(lái),所有計(jì)算機(jī)都用補(bǔ)碼來(lái)表示定點(diǎn)整數(shù)為什么用補(bǔ)碼表示帶符號(hào)整數(shù)?補(bǔ)碼運(yùn)算系統(tǒng)是模運(yùn)算系統(tǒng),加、減運(yùn)算統(tǒng)一數(shù)0的表示唯一,方便使用比原碼和反碼多表示一個(gè)最小負(fù)數(shù)C語(yǔ)言整數(shù)的表示無(wú)符號(hào)整數(shù)使用自然二進(jìn)制表示帶符號(hào)整數(shù)使用補(bǔ)碼表示寬度最大值最小值unsignedchar12550unsignedshort2655360unsignedint4
0unsignedlong4
0寬度最大值最小值char1127-128short232767-32768int42147483647-2147483648long42147483647-2147483648C語(yǔ)言程序中的整數(shù)例如,考慮以下C代碼:1 intx=–1;2 unsignedu=2147483648;34 printf(“x=%u=%d\n”,x,x);5 printf(“u=%u=%d\n”,u,u);在32位機(jī)器上運(yùn)行上述代碼時(shí),它的輸出結(jié)果是什么?為什么?x==–1u=2147483648=–2147483648因?yàn)楱C1的補(bǔ)碼整數(shù)表示為“11…1”,作為32位無(wú)符號(hào)數(shù)解釋時(shí),其值為232–1=4294967296–1=4294967295。231的無(wú)符號(hào)數(shù)表示為“100…0”,被解釋為32位帶符號(hào)整數(shù)時(shí),其值為最小負(fù)數(shù):–232-1=–231=–2147483648。C90上的運(yùn)行結(jié)果是什么?C99的結(jié)果大家回去試試。gcc–std=c99常量的默認(rèn)類型C90 范圍類型0~231-1int231~232-1unsignedint232~263-1longlong263~264-1unsignedlonglongC99范圍類型0~231-1int231~263-1longlong263~264-1unsignedlonglongC語(yǔ)言默認(rèn)類型轉(zhuǎn)換順序(32位)高double←←float↑↑↑unsignedlonglong↑↑↑longlong↑↑↑unsignedint(unsignedlong)↑↑
低int(long)←←char,short,unsignedshortfloat計(jì)算前必然轉(zhuǎn)換為double;char,short計(jì)算前必然轉(zhuǎn)換為int;C語(yǔ)言默認(rèn)類型轉(zhuǎn)換順序(64位)高double←←float↑↑↑unsignedlong↑↑↑long↑↑↑unsignedint↑↑
低int(long)←←char,short,unsignedshortfloat計(jì)算前必然轉(zhuǎn)換為double;char,short計(jì)算前必然轉(zhuǎn)換為int;C90上的運(yùn)行結(jié)果是什么?C99的結(jié)果大家回去試試。gcc–std=c99C語(yǔ)言程序中的整數(shù)關(guān)系表達(dá)式類型結(jié)果說(shuō)明0==0U-1<0-1<0U2147483647>-2147483647-12147483647U>-2147483647-12147483647>(int)2147483648U-1>-2(unsigned)-1>-2無(wú)帶無(wú)帶無(wú)帶帶無(wú)11
0*1
0*
1*1100…0B=00…0B11…1B(-1)<00…0B(0)11…1B(232-1)>00…0B(0)011…1B(231-1)>100…0B(-231)011…1B(231-1)<100…0B(231)011…1B(231-1)>100…0B(-231)11…1B(-1)>11…10B(-2)11…1B(232-1)>11…10B(232-2)帶*的結(jié)果與常規(guī)預(yù)想的相反!類型轉(zhuǎn)換實(shí)例結(jié)果跟你想的一樣嗎,為什么?主要內(nèi)容數(shù)制和編碼整數(shù)的表示實(shí)數(shù)的表示Example:
mantissa(尾數(shù))exponent(階碼、指數(shù))
6.02x1021
decimalpoint
radix(base,基)°Normalizedform(規(guī)格化形式):小數(shù)點(diǎn)前只有一位非0數(shù)°同一個(gè)數(shù)有多種表示形式。例:對(duì)于數(shù)1/1,000,000,000?Normalized(唯一的規(guī)格化形式):1.0x10-9?Unnormalized(非規(guī)格化形式不唯一):0.1x10-8,10.0x10-10科學(xué)計(jì)數(shù)法(ScientificNotation)與浮點(diǎn)數(shù)
mantissa(尾數(shù))exponent(指數(shù))0.101two
x
2
-10
binarypoint基為2forBinaryNumbers:只要對(duì)尾數(shù)和指數(shù)分別編碼,就可表示一個(gè)浮點(diǎn)數(shù)(即:實(shí)數(shù))浮點(diǎn)數(shù)(FloatingPoint)的表示范圍例:畫(huà)出下述32位浮點(diǎn)數(shù)格式的規(guī)格化數(shù)的表示范圍。
018931
第0位數(shù)符S;第1~8位為8位移碼表示階碼E(偏置常數(shù)為128);第9~31位為24位二進(jìn)制原碼小數(shù)表示的尾數(shù)M。規(guī)格化尾數(shù)的小數(shù)點(diǎn)后第一位總是1,故規(guī)定第一位默認(rèn)的“1”不明顯表示出來(lái)。這樣可用23個(gè)數(shù)位表示24位尾數(shù)。S階碼E尾數(shù)M最大正數(shù):0.11…1x211…1=(1-2-24)x2127
最小正數(shù):0.10…0x200…0=(1/2)x2-128
因?yàn)樵a是對(duì)稱的,所以其表示范圍關(guān)于原點(diǎn)對(duì)稱。機(jī)器0:尾數(shù)為0或落在下溢區(qū)中的數(shù)浮點(diǎn)數(shù)范圍比定點(diǎn)數(shù)大,但數(shù)的個(gè)數(shù)沒(méi)變多,故數(shù)之間更稀疏,且不均勻
正下溢
負(fù)下溢
-
(1-2-24)
×2127
數(shù)軸
零
可表示的正數(shù)
可表示的負(fù)數(shù)
-2-129
0
2-129
(1-2-24)
×2127
正上溢
負(fù)上溢
+/-0.1xxxxx
×2E“Father”oftheIEEE754standard現(xiàn)在所有計(jì)算機(jī)都采用IEEE754來(lái)表示浮點(diǎn)數(shù)1970年代后期,IEEE成立委員會(huì)著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)1985年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE754的制定Prof.WilliamKahan
ieee754status/754story.htmlThisstandardwasprimarilytheworkofoneperson,UCBerkeleymathprofessorWilliamKahan.
直到80年代初,各個(gè)機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒(méi)有統(tǒng)一
因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時(shí),帶來(lái)麻煩
IEEE754標(biāo)準(zhǔn)
SinglePrecision:
S
Exponent
Significand
1bit8bits23bits°Signbit:1表示negative;0表示positive°Significand(尾數(shù)):?規(guī)格化尾數(shù)最高位總是1,所以隱含表示,省1位?1+23bits(single)1+52bits(double)°Exponent(階碼/指數(shù)):SP規(guī)格化數(shù)階碼范圍為00000001(-126)~11111110(127)bias為127(single),SP:(-1)Sx(1+Significand)x2(Exponent-127)DP:(-1)Sx(1+Significand)x2(Exponent-1023)全0和全1用來(lái)表示特殊值!為什么用127?若用128,則階碼范圍為多少?00000001(-127)~11111110(126)規(guī)格化數(shù):+/-1.xxxxxxxxxxtwox2Exponent規(guī)定:小數(shù)點(diǎn)前總是“1”,故可隱含表示。注意:和前面例子規(guī)定不一樣,這里更合理!Ex:ConvertingBinaryFPtoDecimal11000000101000000000000000000000°Sign:1=>negative°Exponent:?10000001two=129ten?Biasadjustment:129-127=2°Significand:
1+0x2-1+1x2-2+0x2-3+0x2-4+0x2-5+...=1+2-2=1+0.25=1.25°Represents:-1.25tenx22=-5(-1)S
x(1+Significand)x2(Exponent-127)C0A00000H
isthehex.Rep.OfanIEEE754SPFPnumberEx:ConvertingBinaryFPtoDecimal10111110111000000000000000000000°Sign:1=>negative°Exponent:?01111101two=125ten?Biasadjustment:125-127=-2°Significand:
1+1x2-1+1x2-2+0x2-3+0x2-4+0x2-5+...=1+2-1+2-2=1+0.5+0.25=1.75°Represents:-1.75tenx2-2=-0.4375(-1)S
x(1+Significand)x2(Exponent-127)BEE00000H
isthehex.Rep.OfanIEEE754SPFPnumberEx:ConvertingDecimaltoFP-0.751.Denormalize:-0.752.Convertintegerpart:0=023.Convertfractionalpart:.75=.5+.25=.1124.Putpartstogetherandnormalize:0.11=1.1x2-15.Convertexponent:127-1=126=01111110210111111010000000000000000000000TheHexrep.isBF400000HEx:ConvertingDecimaltoFP-12.751.Denormalize:-12.752.Convertintegerpart:12=8+4=110023.Convertfractionalpart:.75=.5+.25=.1124.Putpartstogetherandnormalize:1100.11=1.10011x235.Convertexponent:127+3=128+2=10000010211000001010011000000000000000000TheHexrep.isC14C0000HNormalizednumbers(規(guī)格化數(shù))ExponentSignificandObject1-254anythingNormsimplicitleading100?0nonzero?2550?255nonzero?前面的定義都是針對(duì)規(guī)格化數(shù)(normalizedform)Howaboutotherpatterns?Representationfor0Howtorepresent0?
exponent:allzeros
significand:allzeros
Whataboutsign?Bothcasesvalid.+0:00000000000000000000000000000000-0:10000000000000000000000000000000Representationfor+∞/-∞
Howtorepresent+∞/-∞??Exponent:
allones(11111111B=255)?Significand:allzeros
+∞:01111111100000000000000000000000-∞:11111111100000000000000000000000Operations5.0/0=+∞,-5.0/0=-∞5+(+∞)=+∞,(+∞)+(+∞)=+∞5-(+∞)=-∞,(-∞)-(+∞)=-∞etc為什么要這樣處理??可以利用+∞/-∞作比較。例如:X/0>Y可作為有效比較InFP,除數(shù)為0的結(jié)果是+/-∞,不是溢出異常.(整數(shù)除0為異常)∞:infinityRepresentationfor“NotaNumber”Sqrt(-4.0)=?0/0=?CalledNotaNumber(NaN)-“非數(shù)”O(jiān)perations
sqrt(-4.0)=NaN0/0=NaNop(NaN,x)=NaN+∞+(-∞)=Na
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專用客車維修合同范本
- 代管理服務(wù)合同范本
- 茶藝師高級(jí)復(fù)習(xí)試題及答案
- 出售鋼材擬定合同范本
- 合同范本對(duì)比
- 商住門面轉(zhuǎn)讓合同范本
- 土地供銷合同范例
- 出租商鋪合同范例政府
- 售后服務(wù)類合同范本
- 2025年三八婦女節(jié)校長(zhǎng)致辭-以柔韌破萬(wàn)鈞以丹心育桃李
- 2025年浙江省建筑安全員C證考試(專職安全員)題庫(kù)及答案
- 2025年健身教練合同協(xié)議樣本
- 2025年湖南商務(wù)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)必考題
- 中儲(chǔ)糧黑龍江分公司招聘考試試卷2023
- 化學(xué)實(shí)驗(yàn)室安全職責(zé)分配
- 9 楓樹(shù)上的喜鵲 【知識(shí)精研】語(yǔ)文二年級(jí)下冊(cè) 統(tǒng)編版
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 中藥玫瑰花培訓(xùn)
- 廣東省佛山市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版小升初真題((上下)學(xué)期)試卷及答案
- 2025年吉林通化梅河新區(qū)(梅河口市)專項(xiàng)引進(jìn)高層次教育人才40人高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論