计算机常用的数制及编码
?
數(shù)制也稱計(jì)數(shù)制,是指用一組固定的符號(hào)和統(tǒng)一的規(guī)則來表示數(shù)值的方法。編碼是采用少量的基本符號(hào),選用一定的組合原則,以表示大量復(fù)雜多樣的信息的技術(shù)。計(jì)算機(jī)是信息處理的工具,任何信息必須轉(zhuǎn)換成二進(jìn)制形式數(shù)據(jù)后才能由計(jì)算機(jī)進(jìn)行處理、存儲(chǔ)和傳輸。
1.1.1.1.1.1?????? 二進(jìn)制數(shù)
二進(jìn)制數(shù)的表示
我們習(xí)慣使用的十進(jìn)制數(shù)是由0、1、2、3、4、5、6、7、8、9十個(gè)不同的符號(hào)組成,每一個(gè)符號(hào)處于十進(jìn)制數(shù)中不同的位置時(shí),它所代表的實(shí)際數(shù)值是不一樣的。例如1999年可表示成
1×1000+9×100+9×10+9×1
=1×103+9×102+9×101+9×100
式中每個(gè)數(shù)字符號(hào)的位置不同,它所代表的數(shù)值也不同,這就是經(jīng)常所說的個(gè)位、十位、百位、千位……的意思。二進(jìn)制數(shù)和十進(jìn)制數(shù)一樣,也是一種進(jìn)位計(jì)數(shù)制,但它的基數(shù)是2。數(shù)中0和1的位置不同,它所代表的數(shù)值也不同。例如二進(jìn)制數(shù)1101表示十進(jìn)制數(shù)13。
?????? (1101)2 _ 1×23+1×22+0×21+1×20
??????????????? _8+4+0+1_13
一個(gè)二進(jìn)制數(shù)具有下列兩個(gè)基本特點(diǎn):
·兩個(gè)不同的數(shù)字符號(hào),即0和1
·逢二進(jìn)一
一般我們用(??? )角標(biāo)表示不同進(jìn)制的數(shù)。例如:十進(jìn)制用(??? )10表示,二進(jìn)制數(shù)用(??? )2表示。
在微機(jī)中,一般在數(shù)字的后面,用特定字母表示該數(shù)的進(jìn)制。例如:
B—二進(jìn)制?????? D-十進(jìn)制(D可省略)???? O-八進(jìn)制????? H-十六進(jìn)制
1.1.1.1.1.2?????? 二進(jìn)制與其它數(shù)制
在進(jìn)位計(jì)數(shù)制中有數(shù)位,基數(shù)和位權(quán)三個(gè)要素。數(shù)位是指數(shù)碼在一個(gè)數(shù)中所處的位置;基數(shù)是指在某種進(jìn)位計(jì)數(shù)制中,每個(gè)數(shù)位上所能使用的數(shù)碼的個(gè)數(shù)。例如:二進(jìn)制數(shù)基數(shù)是2,每個(gè)數(shù)位上所能使用的數(shù)碼為0和1二個(gè)數(shù)碼。在數(shù)制中有一個(gè)規(guī)則,如是N進(jìn)制數(shù)必須是逢N進(jìn)1。對(duì)于多位數(shù),處在某一位上的“1”所表示的數(shù)值的大小,稱為該位的位權(quán)。例如,二進(jìn)制第2位的位權(quán)為2,第3位的位權(quán)為4。一般情況下,對(duì)于N進(jìn)制數(shù),整數(shù)部分第i位的位權(quán)為Ni-1,而小數(shù)部分第j位的位權(quán)為N-j。
下面主要介紹與計(jì)算機(jī)有關(guān)的常用的幾種進(jìn)位計(jì)數(shù)制。
1.?十進(jìn)制(十進(jìn)位計(jì)數(shù)制)
具有十個(gè)不同的數(shù)碼符號(hào)0、1、2、3、4、5、6、7、8、9,其基數(shù)為10;十進(jìn)制數(shù)的特點(diǎn)是逢十進(jìn)一。例如:
????? (1011)10 _1×103+0×102+1×101+1×100
2.???八進(jìn)制(八進(jìn)位計(jì)數(shù)制)
具有八個(gè)不同的數(shù)碼符號(hào)0、1、2、3、4、5、6、7,其基數(shù)為8;八進(jìn)制數(shù)的特點(diǎn)是逢八進(jìn)一。例如:
????? (1011)8 _1×83+0×82+1×81+1×80
????????????????????????????? _ (521)10
3.???十六進(jìn)制(十六進(jìn)位計(jì)數(shù)制)
具有十六個(gè)不同的數(shù)碼符號(hào)0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其基數(shù)為16,十六進(jìn)制數(shù)的特點(diǎn)是逢十六進(jìn)一。例如:
? (1011)16 _ 1×163+0×162+1×161+1×160
??????????????? _ (4113)10
?
表?1-1?? ?四位二進(jìn)制數(shù)與其它數(shù)制的對(duì)應(yīng)表
?
二進(jìn)制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ? | 十進(jìn)制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ? | 八進(jìn)制 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 ? | 十六進(jìn)制 0 1 2 3 4 5 6 7 8 9 A B C D E F ? |
?
1.1.1.1.1.3?????? 不同進(jìn)制數(shù)之間的轉(zhuǎn)換
用計(jì)算機(jī)處理十進(jìn)制數(shù),必須先把它轉(zhuǎn)化成二進(jìn)制數(shù)才能被計(jì)算機(jī)所接受,同理,計(jì)算結(jié)果應(yīng)將二進(jìn)制數(shù)轉(zhuǎn)換成人們習(xí)慣的十進(jìn)制數(shù)。這就產(chǎn)生了不同進(jìn)制數(shù)之間的轉(zhuǎn)換問題。
1)???十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換
⑴十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)
??? 一個(gè)十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)的方法如下:
把被轉(zhuǎn)換的十進(jìn)制整數(shù)反復(fù)地除以2,直到商為0,所得的余數(shù)(從末位讀起)就是這個(gè)數(shù)的二進(jìn)制表示。簡(jiǎn)單地說就是“除2取余法”。
例如,將十進(jìn)制整數(shù)(215)10轉(zhuǎn)換成二進(jìn)制整數(shù)
?
?
?
?
??????? 于是(215)10=(11010111)2
十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)的方法清楚以后,那么,十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制就很容易了。十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制整數(shù)的方法是“除8取余法”,十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制整數(shù)的方法是“除16取余法”。
(2)二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)
把二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的方法是:將二進(jìn)制數(shù)按權(quán)展開求和即可。
例如,將(10110011.101)2 轉(zhuǎn)換成十進(jìn)制數(shù)。
1×27????????? 代表十進(jìn)制數(shù)128
0×26????????? 代表十進(jìn)制數(shù)0
1×25????????? 代表十進(jìn)制數(shù)32
1×24????????? 代表十進(jìn)制數(shù)16
0×23????????? 代表十進(jìn)制數(shù)0
0×22????????? 代表十進(jìn)制數(shù)0
1×21????????? 代表十進(jìn)制數(shù)2
1×20????????? 代表十進(jìn)制數(shù)1
1×2-1???????? 代表十進(jìn)制數(shù)0.5
0×2-2 ????????代表十進(jìn)制數(shù)0
1×2-3 ????????代表十進(jìn)制數(shù)0.125
于是,(10110011.101)2=128+32+16+2+1+0.5+0.125=(179.625)10。同理,非十進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的方法是,把各個(gè)非十進(jìn)制數(shù)按權(quán)展開求和即可。如把二進(jìn)制數(shù)(或八進(jìn)制數(shù)或十六進(jìn)制數(shù))寫成2(或8或16)的各次冪之和的形式,然后再計(jì)算其結(jié)果。
2)?二進(jìn)制數(shù)與八進(jìn)制數(shù)之間的轉(zhuǎn)換
二進(jìn)制數(shù)與八進(jìn)制數(shù)之間的轉(zhuǎn)換十分簡(jiǎn)捷方便,他們之間的對(duì)應(yīng)關(guān)系是:八進(jìn)制數(shù)的每一位對(duì)應(yīng)二進(jìn)制數(shù)的三位。
(1)?二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)
由于二進(jìn)制數(shù)和八進(jìn)制數(shù)之間存在特殊關(guān)系,即81_23,因此轉(zhuǎn)換方法比較容易,具體轉(zhuǎn)換方法是:將二進(jìn)制數(shù)從小數(shù)點(diǎn)開始,整數(shù)部分從右向左3位一組,小數(shù)部分從左向右3位一組,不足三位用0補(bǔ)足即可。
例如,將(10110101110.11011)2化為八進(jìn)制數(shù)。
解:010?????110????? 101????? 110? .? 110????? 110
??? ↓?????? ↓?????? ↓?????? ↓????? ↓?????? ↓
???? 2??????? 6???????5?????? 6?? .??6??????? 6
于是?? (10110101110.11011)2=(2656.66)8
(2) 八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)
方法:以小數(shù)點(diǎn)為界,向左或向右每一位八進(jìn)制數(shù)用相應(yīng)的三位二進(jìn)制數(shù)取代,然后將其連在一起即可。
例如,將(6237.431)8轉(zhuǎn)換為二進(jìn)制數(shù)。
解:? 6????? 2?????3????? 7?? .??4????? 3????? 1
??? ↓???? ↓???? ↓???? ↓?????? ↓???? ↓???? ↓
?? 110??? 010???011??? 111?? .?100??? 011??? 001
于是??? (6237.431)8=(110010011111.100011001)2
3)?二進(jìn)制數(shù)與十六進(jìn)制數(shù)之間的轉(zhuǎn)換
(1)二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)
二進(jìn)制數(shù)的每四位,剛好對(duì)應(yīng)于十六進(jìn)制數(shù)的一位(161_24),其轉(zhuǎn)換方法是:將二進(jìn)制數(shù)從小數(shù)點(diǎn)開始,整數(shù)部分從右向左4位一組,小數(shù)部分從左向右4位一組,不足四位用0補(bǔ)足,每組對(duì)應(yīng)一位十六進(jìn)制數(shù)即可得到十六進(jìn)制數(shù)。
例1:將二進(jìn)制數(shù)(101001010111.110110101) 2? 轉(zhuǎn)換為十六進(jìn)制數(shù)。
解:1010????? 0101????? 0111?? .?? 1101????? 1010????? 1000
???? ↓???????↓??????? ↓???????? ↓??????? ↓??????? ↓
????? A???????? 5???????? 7???.???? D???????? A???????? 8
于是??? (101001010111)2=(A57.DA1)16
例2:將二進(jìn)制數(shù)(100101101011111)2 ?轉(zhuǎn)換為十六進(jìn)制數(shù)。
解:0100????? 1011????? 0101????? 1111
???? ↓???????↓??????? ↓??????? ↓
???? 4????????? B??????? 5????????? F
于是??? (100101101011111)2=(4B5F)16
(1)?????(2)????????十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)
方法:以小數(shù)點(diǎn)為界,向左或向右每一位十六進(jìn)制數(shù)用相應(yīng)的四位二進(jìn)制數(shù)取代,然后將其連在一起即可。
例如,將(3AB.11)16轉(zhuǎn)換成二進(jìn)制數(shù)。
解:3????? A??????? B???.?? 1????? 1
?? ↓????? ↓????? ↓?????? ↓???? ↓
? 0011??? 1010???1011?? .? 0001??0001
于是(3AB.11)16=(1110101011.00010001)2
1.1.1.1.1.4?????? 二進(jìn)制數(shù)在計(jì)算機(jī)內(nèi)的表示
計(jì)算機(jī)內(nèi)表示的數(shù),分成整數(shù)和實(shí)數(shù)兩大類。在計(jì)算機(jī)內(nèi)部,數(shù)據(jù)是以二進(jìn)制的形式存儲(chǔ)和運(yùn)算的。數(shù)的正負(fù)用高位字節(jié)的最高位來表示,定義為符號(hào)位,用“0”表示正數(shù),“1”表示負(fù)數(shù)。例如,二進(jìn)制數(shù)+1101000在機(jī)器內(nèi)的表示為:
?
0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
↑
符號(hào)位
ASCII碼
計(jì)算機(jī)中,對(duì)非數(shù)值的文字和其他符號(hào)進(jìn)行處理時(shí),要對(duì)文字和符號(hào)進(jìn)行數(shù)字化處理,即用二進(jìn)制編碼來表示文字和符號(hào)。字符編碼(Character Code)是用二進(jìn)制編碼來表示字母、數(shù)字以及專門符號(hào)。
在計(jì)算機(jī)系統(tǒng)中,有兩種重要的字符編碼方式:ASCII和EBCDIC。EBCDIC主要用于IBM的大型主機(jī),ASCII用于微型機(jī)與小型機(jī)。下面我們簡(jiǎn)要介紹ASCII碼。
目前計(jì)算機(jī)中普遍采用的是ASCII(AmericanStandard Code for Information Interchange)碼,即美國(guó)信息交換標(biāo)準(zhǔn)代碼。ASCII碼有7位版本和8位版本兩種,國(guó)際上通用的是7位版本,7位版本的ASCII碼有128個(gè)元素,只需用7個(gè)二進(jìn)制位(27=128)表示,其中控制字符32個(gè),阿拉伯?dāng)?shù)字10個(gè),大小寫英文字母52個(gè),各種標(biāo)點(diǎn)符號(hào)和運(yùn)算符號(hào)34個(gè)。在計(jì)算機(jī)中實(shí)際用8位表示一個(gè)字符,最高位為“0”。書后附錄一列出了全部128個(gè)符號(hào)的ASCII碼。例如,數(shù)字0的ASCII碼為48,大寫英文字母A的ASCII碼為65,空格的ASCII碼為32等等。有的計(jì)算機(jī)教材中的ASCII碼用16進(jìn)制數(shù)表示,這樣,數(shù)字0的ASCII碼為30H,字母A的ASCII為41H,…。
EBCDIC (擴(kuò)展的二-十進(jìn)制交換碼)是西文字符的另一種編碼,采用8位二進(jìn)制表示,共有256種不同的編碼,可表示256個(gè)字符,在某些計(jì)算機(jī)中也常使用。總結(jié)
以上是生活随笔為你收集整理的计算机常用的数制及编码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssm之九 批量导入excel到数据库
- 下一篇: struts、hibernate、spr