1.3 計(jì)算機(jī)內(nèi)部的數(shù)據(jù)表達(dá) 計(jì)算機(jī)內(nèi)部數(shù)據(jù)表達(dá)的總原則就是:把一切內(nèi)容數(shù)值化、數(shù)字化。這個(gè)也是編程時(shí)處理數(shù)據(jù)的基本方式,對(duì)于編程理解的越深入,則將越認(rèn)同該原則。 其實(shí)計(jì)算機(jī)也只能這樣,因?yàn)橛?jì)算機(jī)內(nèi)部只能存儲(chǔ)0和1兩個(gè)數(shù)字,所以必須把指令、數(shù)據(jù)、圖片、文本等各種各樣的內(nèi)容數(shù)字化成0和1進(jìn)行存儲(chǔ)、傳輸和顯示。 1.3.1 整數(shù)的表達(dá) 整數(shù)有正負(fù)之分,但是計(jì)算機(jī)內(nèi)部只能存儲(chǔ)0和1,則計(jì)算機(jī)內(nèi)部將符號(hào)數(shù)字化,用二進(jìn)制碼的最高位代表符號(hào)位,規(guī)定該位為0代表正,1代表負(fù)。這就是符號(hào)數(shù)字化的規(guī)定。 前面介紹過整數(shù)在計(jì)算機(jī)內(nèi)部都是以二進(jìn)制的形式保存的。但是為了計(jì)算方便,以及簡(jiǎn)化CPU的結(jié)構(gòu),所以在存儲(chǔ)和運(yùn)算時(shí)都采用補(bǔ)碼的形式。 前面介紹的那些直接計(jì)算出來的二進(jìn)制形式,都稱作整數(shù)的原碼。規(guī)定正數(shù)的原碼、反碼和補(bǔ)碼都是自身。 而對(duì)于負(fù)數(shù),仔細(xì)研究一下其組成格式。以8位機(jī)為例,也就是一個(gè)數(shù)字占計(jì)算機(jī)中的8位,也就是一個(gè)字節(jié),用最高位存儲(chǔ)符號(hào)位,其它的位存儲(chǔ)數(shù)值。例如-8的原碼是10001000,最高位的1代表負(fù)數(shù),后續(xù)的7位代表數(shù)值。 負(fù)數(shù)的反碼是指符號(hào)位不變,其他的位取反,也就是0變1,1變0,則-8的反碼是11110111.負(fù)數(shù)的補(bǔ)碼是指在反碼的數(shù)值位上加1,運(yùn)算后得到的結(jié)果,只計(jì)算數(shù)值位,不改變符號(hào)位。則-8的補(bǔ)碼是11111000,該次運(yùn)算中,低位向高位進(jìn)行了進(jìn)位。 規(guī)律:補(bǔ)碼的補(bǔ)碼等于負(fù)數(shù)的原碼。 也就是對(duì)負(fù)數(shù)的補(bǔ)碼再求補(bǔ),則得到的負(fù)數(shù)的原碼。 熟悉整數(shù)的表達(dá),對(duì)于后續(xù)理解數(shù)據(jù)的區(qū)間以及進(jìn)行強(qiáng)制轉(zhuǎn)換以后得到的數(shù)值很有幫助,也是進(jìn)行位運(yùn)算的基礎(chǔ)。 備注:小數(shù),編程語言中稱浮點(diǎn)數(shù),的存儲(chǔ)形式和整數(shù)不同。 1.3.2 字符的表達(dá) 字符指計(jì)算機(jī)內(nèi)部單個(gè)的符號(hào),如標(biāo)點(diǎn)符號(hào)、英文字母和漢字等等。因?yàn)檫@些字符種類各異,計(jì)算機(jī)無法直接表達(dá),那么就采用了計(jì)算機(jī)編程中也常用的方式,對(duì)每個(gè)字符進(jìn)行編號(hào),例如規(guī)定a字符編號(hào)為97,b字符編號(hào)為98等等。 由于需要編號(hào)的字符很多,就專門規(guī)定了一系列字符和編號(hào)的對(duì)應(yīng)規(guī)則,那么這些對(duì)應(yīng)表就被稱作字符集,常見的字符集有ASCII、GB2312、BIG5等。 在計(jì)算機(jī)內(nèi)部存儲(chǔ)、運(yùn)算和傳輸時(shí),都只需要使用該編號(hào)即可。 字符集比較完美的解決了字符的存儲(chǔ)和傳輸?shù)膯栴}。 所以字符在程序內(nèi)部可以參與運(yùn)算,其實(shí)參與運(yùn)算的就是這個(gè)字符的編號(hào),字符集規(guī)律是很多字符變換邏輯實(shí)現(xiàn)的基礎(chǔ)。 備注:字符的顯示則通過專門的字符顯示碼實(shí)現(xiàn)。 1.3.3 總結(jié) 其實(shí)計(jì)算機(jī)內(nèi)部所有的東西都是以數(shù)字的形式存儲(chǔ)的,這里只是希望通過這兩種簡(jiǎn)單的結(jié)構(gòu),使大家了解將數(shù)據(jù)數(shù)字化的思想,這是編程時(shí)常用的思想之一。 |