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