计算机常用的数制及编码

 

数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。编码是采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息的技术。计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理、存储和传输。

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。

       (11012 _ 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;十进制数的特点是逢十进一。例如:

      (101110 _1×103+0×102+1×101+1×100

2   八进制(八进位计数制)

具有八个不同的数码符号0、1、2、3、4、5、6、7,其基数为8;八进制数的特点是逢八进一。例如:

      (10118 _1×83+0×82+1×81+1×80

                              _ (52110

3   十六进制(十六进位计数制)

具有十六个不同的数码符号0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其基数为16,十六进制数的特点是逢十六进一。例如:

  (101116 _ 1×163+0×162+1×161+1×160

                _ (411310

 

表 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取余法”。

例如,将十进制整数(21510转换成二进制整数

 

 

 

 

        于是(21510=(11010111)2

十进制整数转换成二进制整数的方法清楚以后,那么,十进制整数转换成八进制或十六进制就很容易了。十进制整数转换成八进制整数的方法是“除8取余法”,十进制整数转换成十六进制整数的方法是“除16取余法”。

(2)二进制数转换成十进制数

把二进制数转换为十进制数的方法是:将二进制数按权展开求和即可。

例如,将(10110011.1012 转换成十进制数。

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.1012=128+32+16+2+1+0.5+0.125=(179.625)10。同理,非十进制数转换成十进制数的方法是,把各个非十进制数按权展开求和即可。如把二进制数(或八进制数或十六进制数)写成2(或8或16)的各次幂之和的形式,然后再计算其结果。

2 二进制数与八进制数之间的转换

二进制数与八进制数之间的转换十分简捷方便,他们之间的对应关系是:八进制数的每一位对应二进制数的三位。

(1 二进制数转换成八进制数

由于二进制数和八进制数之间存在特殊关系,即81_23,因此转换方法比较容易,具体转换方法是:将二进制数从小数点开始,整数部分从右向左3位一组,小数部分从左向右3位一组,不足三位用0补足即可。

例如,将(10110101110.110112化为八进制数。

解:010     110      101      110  .  110      110

    ↓       ↓       ↓       ↓      ↓       ↓

     2        6       5       6   .  6        6

于是   (10110101110.11011)2=(2656.66)8

(2) 八进制数转换成二进制数

方法:以小数点为界,向左或向右每一位八进制数用相应的三位二进制数取代,然后将其连在一起即可。

例如,将(6237.4318转换为二进制数。

解:  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)转换为十六进制数。

解: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.1116转换成二进制数。

解:3      A        B   .   1      1

   ↓      ↓      ↓       ↓     ↓

  0011    1010   1011   .  0001  0001

于是(3AB.1116=(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个字符,在某些计算机中也常使用。

你可能感兴趣的:(IT,教育,道本自然)