1.2 數(shù)據(jù)的表示和類型在用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)時(shí),,程序員可以直接訪問(wèn)內(nèi)存,對(duì)數(shù)據(jù)在存儲(chǔ)器內(nèi)的表示形式要有一個(gè)清晰的認(rèn)識(shí),。下面,,我們只簡(jiǎn)單介紹本課程所要用到的數(shù)據(jù)表示知識(shí),為后面的學(xué)習(xí)作一點(diǎn)必要的準(zhǔn)備,。 有關(guān)“數(shù)據(jù)表示”的詳細(xì)內(nèi)容請(qǐng)參閱《計(jì)算機(jī)組成原理》中的相關(guān)章節(jié),。 1.2.1 數(shù)值數(shù)據(jù)的表示(1)、二進(jìn)制 在計(jì)算機(jī)內(nèi),,數(shù)值是用二進(jìn)制來(lái)表示的,,每個(gè)二進(jìn)制數(shù)按權(quán)相加就可得到其十進(jìn)制數(shù)值。在書寫二進(jìn)制時(shí),,為了區(qū)別,,在數(shù)據(jù)后面緊跟一個(gè)字母B。 二進(jìn)制的一般表現(xiàn)形式為:bn-1…b1b0B,,其代表數(shù)值:bn-12n-1+…+b121+b020,。 數(shù)據(jù)的二進(jìn)制表示形式簡(jiǎn)單、明了,,但它書寫起來(lái)比較長(zhǎng),,所以,通常情況下,,我們?cè)诔绦蛑胁恢苯佑枚M(jìn)制來(lái)書寫具體的數(shù)值,,而改用八進(jìn)制、十進(jìn)制或十六進(jìn)制,。 (2),、八進(jìn)制 八進(jìn)制是一種二進(jìn)制的變形,三位二進(jìn)制可變?yōu)橐晃话诉M(jìn)制,,反之也然,。八進(jìn)制的表示元素是:0,、1、…,、7,。在書寫時(shí),為了區(qū)別,,在數(shù)據(jù)后面緊跟一個(gè)字母Q,。如:1234Q、7654Q,、54Q等都是八進(jìn)制,。 八進(jìn)制數(shù)在程序中的使用頻率不高。 (3),、十進(jìn)制 十進(jìn)制是我們最熟悉的一種數(shù)據(jù)表示形式,,它的基本元素是:0、1,、…,、9。在書寫時(shí),,為了區(qū)別,,在數(shù)據(jù)后面緊跟一個(gè)字母D。在程序中經(jīng)常用十進(jìn)制來(lái)表示數(shù)據(jù),。 (4),、十六進(jìn)制 十六進(jìn)制是另一種二進(jìn)制的變形,四位二進(jìn)制可變?yōu)橐晃皇M(jìn)制,,反之也然,。十六進(jìn)制的基本元素是:0、1,、…,、9、A,、B,、…、F(字母小寫也可以),,其中:字母A,、B、…,、F依次代表10,、11、…,、15,。 在書寫時(shí),,為了區(qū)別,在數(shù)據(jù)后面緊跟一個(gè)字母H,。當(dāng)十六進(jìn)制數(shù)的第一個(gè)字符是字母時(shí),,在第一個(gè)字符之前必須添加一個(gè)‘0’。如:100H,、56EFH、0FFH,、0ABCDH等都是十六進(jìn)制數(shù),。 十六進(jìn)制在程序中的使用頻率很高。 (5),、數(shù)值進(jìn)制的總結(jié)和相互轉(zhuǎn)換 表1.1 各種進(jìn)制及其字符表示
下面是各進(jìn)制數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換的控件,,瀏覽者通過(guò)它可很好地掌握這些進(jìn)制之間的轉(zhuǎn)換方法。當(dāng)十進(jìn)制轉(zhuǎn)化為其它進(jìn)制時(shí),,瀏覽者還可進(jìn)行實(shí)際的練習(xí)操作,。
(6)、數(shù)的補(bǔ)碼表示法 在計(jì)算機(jī)內(nèi),,為了表示正負(fù)數(shù),,并便于進(jìn)行各種算術(shù)運(yùn)算,對(duì)有符號(hào)數(shù)采用二進(jìn)制的補(bǔ)碼表示形式,。 補(bǔ)碼的最高位用來(lái)表示正負(fù)數(shù):0—正數(shù),,1—負(fù)數(shù)。 正數(shù)的補(bǔ)碼是其自身的二進(jìn)制形式,,負(fù)數(shù)的補(bǔ)碼是把其正數(shù)的二進(jìn)制編碼變“反”,,再加1而得。 (7),、二進(jìn)制數(shù)的符號(hào)擴(kuò)展 在匯編語(yǔ)言中,,我們經(jīng)常要對(duì)字/字節(jié)的數(shù)據(jù)進(jìn)行操作。當(dāng)把“字節(jié)”轉(zhuǎn)換成“字”,,或“字”轉(zhuǎn)換成“雙字”時(shí),,就需要進(jìn)行符號(hào)擴(kuò)展。符號(hào)擴(kuò)展的具體操作就是把已知信息的最高位擴(kuò)展到所有更高位,。 例1.1 把8位補(bǔ)碼01011010,、10101100分別擴(kuò)展成16位補(bǔ)碼,。
例1.2 把16位補(bǔ)碼0101101111001010,、1010111101011011別擴(kuò)展成32位補(bǔ)碼,。
(8),、n位二進(jìn)制的表示范圍 n位二進(jìn)制所能表示的無(wú)符號(hào)整數(shù)的范圍:0≤x≤2n-1,。 在匯編語(yǔ)言中,,常用到n為8和16時(shí)的數(shù)值范圍: n=8時(shí),,無(wú)符號(hào)整數(shù)的范圍:0~255,有符號(hào)整數(shù)的范圍:-128~127,; (9),、BCD碼 通常,我們習(xí)慣用十進(jìn)制表示的數(shù)據(jù),,但計(jì)算機(jī)是用二進(jìn)制來(lái)表示數(shù)數(shù)據(jù)的,,這就需要進(jìn)行數(shù)值進(jìn)制之間的轉(zhuǎn)換。我們把每位十進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制的編碼,,簡(jiǎn)稱為BCD碼(Binary Coded Decimal),。 BCD碼是用4位二進(jìn)制編碼來(lái)表示1位十進(jìn)制數(shù)。這種編碼方法有多種,,但常用的編碼是8421BCD編碼,,如表1.2所示。這種BCD編碼實(shí)際上就是0~9的“等值”二進(jìn)制數(shù),。 表1.2 8421BCD編碼列表
用BCD碼進(jìn)行進(jìn)制的轉(zhuǎn)換時(shí),,是要求在二種進(jìn)制的表現(xiàn)形式上快速轉(zhuǎn)換,而不是要求在“數(shù)值相等”的含義快速轉(zhuǎn)換,。 例1.3 求十進(jìn)制數(shù)2000的BCD編碼和其二進(jìn)制數(shù),。 解:2000的BCD編碼是把每位上的數(shù)2、0,、0,、0分別轉(zhuǎn)換為其對(duì)應(yīng)的BCD編碼:0010、0000,、0000和0000,,把它們合在一起就是2000的BCD編碼:0010 0000 0000 0000。 十進(jìn)制數(shù)2000的二進(jìn)制數(shù)是:11111010000,,它們?cè)跀?shù)值上是相等的,。
1.2.2 非數(shù)值數(shù)據(jù)的表示計(jì)算機(jī)除了具有進(jìn)行數(shù)值計(jì)算能力之外,,還具有進(jìn)行非數(shù)值計(jì)算的能力。現(xiàn)在,,后者的應(yīng)用領(lǐng)域已遠(yuǎn)遠(yuǎn)超過(guò)了前者的應(yīng)用領(lǐng)域,,如:文字處理、圖形圖象處理,、信息檢索,、日常的辦公管理等。所以,,對(duì)非數(shù)值信息的編碼就顯得越加重要,。
2,、漢字編碼ASCII碼是針對(duì)英文的字母、數(shù)字和其它特殊字符進(jìn)行編碼的,,它不能用于對(duì)漢字的編碼,。要想用計(jì)算機(jī)來(lái)處理漢字,就必須先對(duì)漢字進(jìn)行適當(dāng)?shù)木幋a,。我國(guó)在1981年5月對(duì)6000多個(gè)常用的漢字制定了交換碼的國(guó)家標(biāo)準(zhǔn),,即:GB2312-80。該標(biāo)準(zhǔn)規(guī)定了漢字交換用的基本漢字字符和一些圖形字符,,它們共計(jì)7445個(gè),,其中漢字有6763個(gè)。該標(biāo)準(zhǔn)給定每個(gè)字符的二進(jìn)制編碼,,即國(guó)標(biāo)碼,。 有關(guān)漢字編碼的詳細(xì)信息,,請(qǐng)參閱其它有關(guān)書籍,在此不再介紹,。
1.2.3 基本的數(shù)據(jù)類型匯編語(yǔ)言所用到的基本數(shù)據(jù)類型為:字節(jié),、字、雙字等,,這些數(shù)據(jù)類型在以后的章節(jié)中都有相應(yīng)的類型說(shuō)明符,。下面對(duì)它們進(jìn)行最基本的描述。 1,、字節(jié)
2,、字
3,、雙字
圖1.5 字節(jié)、字和雙字?jǐn)?shù)據(jù)類型之間關(guān)系示意圖 4,、四字 由4個(gè)字(8個(gè)字節(jié))組成一個(gè)四字類型,,它總共有64個(gè)二進(jìn)制位,當(dāng)然,,也就有更大的數(shù)據(jù)表示范圍,,但在匯編語(yǔ)言中很少使用該數(shù)據(jù)類型。 5,、十字節(jié) 由10個(gè)字節(jié)組成一個(gè)十字節(jié)類型,,它總共有80個(gè)二進(jìn)制位。在匯編語(yǔ)言中很少使用該數(shù)據(jù)類型,。 6,、字符串 字符串是由若干個(gè)字節(jié)組成的,字節(jié)數(shù)不定,,通常每個(gè)字節(jié)存儲(chǔ)一個(gè)字符,。該數(shù)據(jù)形式是匯編語(yǔ)言程序中經(jīng)常使用的另一種數(shù)據(jù)形式。 |
|
來(lái)自: R.W.B.yang > 《第一章,、預(yù)備知識(shí)》