c_learn_2
652
2025-04-01
0.8 計算機中數(shù)據(jù)的表示
0.8.1 數(shù)值數(shù)據(jù)的表示
1.機器數(shù)和真值
計算機中使用的是二進制,因此只有0和1這兩種值。一個數(shù)在計算機中的表示形式,稱為機器數(shù)。機器數(shù)所對應(yīng)的原來的數(shù)值稱為真值,由于采用二進制必須將符號數(shù)字化,因此通常是利用機器數(shù)的最高位作為符號位的,但僅用來表示數(shù)符。若該位為0,則表示正數(shù);若該位為1,則表示負數(shù)。機器數(shù)也有不同的表示方法,常用的機器數(shù)共有3種:原碼、補碼和反碼。
機器數(shù)的表示方法:用機器數(shù)的最高位代表符號(若為0,則代表正數(shù);若為1,則代表負數(shù)),其數(shù)值位為真值數(shù)的絕對值。舉例用8位二進制數(shù)表示一個數(shù),如圖0-39所示。
圖0-39 用8位二進制表示一位數(shù)
在數(shù)的表示中,機器數(shù)與真值的區(qū)別是:真值帶符號如-0011100,機器數(shù)不帶數(shù)符,最高位為符號位,如10011100,其中最高位1代表符號位。
例如,真值數(shù)為-0111001,其對應(yīng)的機器數(shù)為10111001,其中最高位為1,表示該數(shù)為負數(shù)。
2.原碼、反碼、補碼的表示
在計算機中,符號位和數(shù)值位都是用0和1來表示的,在對機器數(shù)進行處理時,必須考慮對符號位的處理,也就是對符號和數(shù)值的編碼方法。常見的編碼方法有原碼、反碼和補碼這3種方法。下面分別討論這3種方法的使用。
(1)原碼的表示
一個數(shù)X的原碼表示為:符號位用0表示正,用1表示負;數(shù)值部分為X的絕對值的二進制形式。這里將X的原碼表示記為[X]原。
例如,當X=+1100001時,則[X]原=01100001。
當X=-1110101時,則[X]原=11110101。
在原碼中,0有兩種表示方式,分別如下。
當X=+0000000時,[X]原=00000000。
當X=-0000000時,[X]原=10000000。
(2)反碼的表示
一個數(shù)X的反碼表示方法為:若X為正數(shù),則其反碼與原碼相同;若X為負數(shù),則在原碼的基礎(chǔ)上,符號位保持不變,數(shù)值位各位取反。這里將X的反碼表示記為[X]反。
例如,當X=+1100001時,則[X]原=01100001,[X]反=01100001。
當X=-1100001時,則[X]原=11100001,[X]反=10011110。
在反碼表示中,0也有兩種表示形式,具體如下:
當X=+0時,則[X]反=00000000。
當X=-0時,則[X]反=10000000。
(3)補碼的表示
一個數(shù)X的補碼表示方式為:當X為正數(shù)時,則X的補碼與X的原碼相同;當X為負數(shù)時,則X的補碼,其符號位與原碼相同,其數(shù)值位取反加1。這里將X的補碼表示記為[X]補。
例如,當X=+1110001,則[X]原=01110001,[X]補=01110001。
當X=-1110001,則[X]原=11110001,[X]補=10001111。
0.8.2 非數(shù)值數(shù)據(jù)的表示
計算機中使用的數(shù)據(jù)有數(shù)值型數(shù)據(jù)和非數(shù)值型數(shù)據(jù)兩大類。數(shù)值數(shù)據(jù)用于表示數(shù)量意義;非數(shù)值數(shù)據(jù)又稱為符號數(shù)據(jù),包括字母和符號等。計算機除了要處理數(shù)值信息之外,還需要處理大量字符信息。例如,將用高級語言編寫的程序輸入到計算機時,人與計算機通信時所用的語言就不再是一種純數(shù)字語言而是字符語言。由于計算機中只能存儲二進制數(shù),這就需要對字符進行編碼了,從而建立起字符數(shù)據(jù)與二進制串之間的對應(yīng)關(guān)系,以便于計算機識別、存儲和處理。這里介紹兩種符號數(shù)據(jù)的表示。
1.字符數(shù)據(jù)的表示
計算機中用得最多的符號數(shù)據(jù)就是字符,它是用戶和計算機之間的橋梁。用戶使用計算機的輸入設(shè)備,通過鍵盤上的字符鍵向計算機內(nèi)輸入命令和數(shù)據(jù),計算機將處理后的結(jié)果以字符的形式輸出到屏幕或打印機等輸出設(shè)備上。字符的編碼方案也有很多種,但使用最廣泛的是ASCII碼(American Standard Code for Information Interchange)。ASCII碼開始時是美國國家信息交換標準字符碼,后來被采納為一種國際通用的信息交換標準代碼。
ASCII碼由0~9這10個數(shù)符,52個大、小寫英文字母,32個符號及34個計算機通用控制符組成,共有128個元素。因為ASCII碼總共有128個元素,因此使用二進制編碼表示時需用7位。任意一個元素均由7位二進制數(shù)表示,從0000000到1111111共有128種編碼,可用來表示128個不同的字符。ASCII碼表的查表方式是:先查列(高三位),后查行(低四位),然后按從左到右的書寫順序完成,如B的ASCII碼為1000010。在ASCII碼進行存放時,由于它的編碼是7位,且因1字節(jié)(8位)是計算機中常用的單位,故仍以1字節(jié)來存放1個ASCII碼字符,每字節(jié)中多余的最高位取0。如表0-7所示為7位ASCII碼字符編碼表。
表0-7 ASCII字符編碼表
由表0-7可知,ASCII碼字符可分為如下兩大類。
打印字符:從鍵盤輸入并顯示的95個字符,如大小寫英文字母各26個,數(shù)字0~9這10個數(shù)字字符的高3位編碼(D6D5D4)為011,低4位為0000~1001。當去掉高3位時,低4位正好是二進制形式的0~9。
不可打印字符:共33個,其編碼值為0~31(0000000~0011111)和(1111111),不對應(yīng)任何可印刷字符。不可打印字符通常為控制符,用于計算機通信中的通信控制或?qū)υO(shè)備的功能控制。如編碼值為127(1111111),是刪除控制DEL碼,它用于刪除光標之后的字符。
ASCII碼字符的碼值可用7位二進制代碼或2位十六進制代碼來表示。例如字母D的ASCII碼值為(1000100)2或84H,數(shù)字4的ASCII碼值為(0110100)2或34H等。
2.漢字的存儲介紹
英語是拼音文字,所有文字均由26個字母拼組而成,所以使用1字節(jié)表示一個字符就足夠了。但漢字是象形文字,漢字的計算機處理技術(shù)比英文字符要復(fù)雜得多,一般用2字節(jié)表示一個漢字。由于漢字有一萬多個,常用的也有六千多個,所以編碼采用2字節(jié)的低7位共14位二進制來表示。
常用的、支持漢字的計算機字符編碼有UTF8、GB2312、GBK等。更多信息請參考https://baike.baidu.com/item/%E6%B1%89%E5%AD%97%E7%BC%96%E7%A0%81/7123465。
運維 Linux
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。