计算机中的数制与编码
一、数制
1、什么是进位计数制 
  数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原则进行计数的方法,称为进位计数制。比如,在十进位计数制中,是按照逢十进一的原则进行计数的。 
 常用进位计数制:
 a、十位制(Decimal notation)
 b、二进制(Binary notation)
 c、八进制(Octal notation)
 d、十六进制数(Hexdecimal notation)
2、进位计数制的基数与位权
  "基数""位权"是进位计数制的两个要素。
1)基数:所谓基数,就是进位计数制的每位数上可能有的数码的个数。例如,十进制数每位上的数码,有"0""1""3",…,"9"十个数码,所以基数为10

2)位权:所谓位权,是指一个数值的每一位上的数字的权值的大小。例如十进制数4567从低位到高位的位权分别为100101102103。因为:
45674x1035x 1026x 101 7x100

3)数的位权表示:任何一种数制的数都可以表示成按位权展开的多项式之和。
比如:十进制数的43505可表示为:
435054x1023x 1015x1000x101 5x 102
  位权表示法的特点是:每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。
3、二进制数
  计算机中为何采用二进制:二进制运算简单、电路简单可靠、逻辑性强
1)定义:按逢二进一的原则进行计数,称为二进制数,即每位上计满2 向高位进一。
2)特点:每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2;
比如:1001101000101011是两个二进制数。
(3)二进制数的位权表示:
(1101.101)21x231x 220x 211x 201x21 0x 221x23
4)二进制数的运算规则
1 加法运算
000 1110
01101
2 乘法运算
0×00 1×11
0×11×00
4、八进制数
1)定义:按逢八进一的原则进行计数,称为八进制数,即每位上计满8时向高位进一。
2)特点:每个数的数位上只能是0、1、234567八个数字;八进制数中最大数字是7,最小数字是0;基数为8
比如:(1347)8(62435)8是两个八进制数。
(3)八进制数的位权表示:
(10713)81x 820x 817x 801x81 3x 82
5、十六进制数
1)定义:按逢十六进一的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。
2)特点:每个数的数位上只能是0、1、23456789ABCDEF十六个数码;十六进制数中最大数字是F,即15,最小数字是0;基数为16
比如:(109)16(2FDE)16是两个十六进制数。
(3)十六进制数的位权表示:
(10913)161x 1620x1619x 1601x161 3x 162
(2FDE)162x 16315x 16213x 16114x 160
6、常用计数制间的对应关系
 十进制   二进制    八进制    十六进制
  0     0      0       0
  1     1      1      1
  2    10      2      2
  4     100      4       4
  8     1000      10     8
  10     1010     12      A
  15     1111     17       F
  16     10000     20       10
7、数制间的转换
()、十进制数转换成非十进制数
1、十进制整数转换成非十进制整数
a、为什么要进行数制间的转换?
  将数由一种数制转换成另一种数制称为数制间的转换。
因为日常生活中经常使用的是十进制数,而在计算机中采用的是二进制数。所以在使用计算机时就必须把输入的十进制数换算成计算机所能够接受的二进制数。计算机在运行结束后,再把二进制数换算成人们所习惯的十进制数输出。这两个换算过程完全由计算机自动完成。
b、转换方法
  十进制整数化为非十进制整数采用余数法,即除基数取余数。
把十进制整数逐次用任意十制数的基数去除,一直到商是0 为止,然后将所得到的余数由下而上排列即可。
2、十进制小数转换成非十进制小数转换方法
  十进制小数转换成非十进制小数采用进位法,即乘基数取整数。
  把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于0或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。
二、非十进制数转换成十进制数
转换方法
  非十进制数转换成十制数采用位权法,即把各非十进制数按位权展开,然后求和。
三、二、八、十进制数之间转换
1、二进制 数与八进制数之间的转换转换方法
  a、把二进制数转换为八进制数时,按三位并一位的方法进行。
以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。
  b、将八进制数转换成二进数时,采用一位拆三位的方法进行。
把八进制数每位上的数用相应的三位二进制数表示。
2、二进制数与十六进制数之间的转换转换方法
  a、把二进制数转换为十六进制数时,按四位并一位的方法进行。
以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添0补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添0补足四位。然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。
  b、将十六进制数转换成二进数时,采用一位拆四位的方法进行。
把十六进制数每位上的数用相应的四位二进制数表示。

、计算机中数的表示

  计算机既可以处理数字信息和文字信息,也可以处理图形、声音、图像等信息。然而,由于计算机中采用二进制,所以这些信息在计算机内部必须以二进制编码的形式表示。也就是说,一切输入到计算机中的数据都是由01两个数字进行 组合的。
  问题:这些数值、文字、字符或图形是如何用二进制编码进行组合呢?
1、机器数与真值
a、机器数
  数学中正数与负数是用该数的绝对值,加上正、负符号来表示。由于计算机中无论是数值还是数的符号,都只能用01来表示。所以计算机中,为了表示正、负数,把一个数的最高位作为符号位:0表示正数,1表示负数。比如 ,如果用八个二进制位表示一个十进制数,则正的36和负的36可表示为:
36 ----> 00100100
36 ----> 10100100
  这种连同符号位一起数字化了的数称为机器数
b、真值
  由机器数所表示的实际值称为真值。
比如:
机器数00101011的真值为:
十进制的+43 或二进制的+0101011
机器数1010011的真值为:
十进制的-43 或二进制的-0101011
2、机器数的表示方法
a、原码
  1、定义:正数的符号位用0表示,负数的符号位用1表示,数值部分用二进制形式表示,称为该数的原码。
比如:
X=+81 X)原 0 1010001
Y=-81 Y)原 1 1010001
符号位 数值
  2、用原码表示一个数简单、直观、方便。但不能用它对两个同号数相减或两个异号数相加。
比如:将十进制数36”与45”的原码直接相加:
X=+36 X)原 00100100
Y=-45 Y)原 =10101101

0 0 1 0 0 1 0 0……(+36)10+) 1 0 1 0 1 1 0 1……(-45)10
1 1 0 1 0 0 0 1……(-81)10
这显然是不对的。
b、反码
  定义:正数的反码和原码相同,负数的反码是对该数的原码除符号位外各位取反,即0
1”,1”变0
例如:X=+81Y=-81
X)原 0 1010001 X)反= 0 1010001
Y) 1 1010001 Y)反= 1 0101110
   符号位 数值      符号位 数值
c、补码
  1、定义:正数的补码与原码相同,负数的补码是对该数的原码除符号外各位取反,然后加1,即反码加1
比如:X=+81Y=-81 X)原=(X)反=(X)补=01010001
Y)原=11010001
Y)反=10101110
Y)补=10101111


  2、计算机中,加减法基本上都采用补码进行运算,并且加减法运算都可以用加法来实现。
比如:计算十进制数:3645,可 写成:36+(-45),即
3610 -(4510 =(3610+(-二进制编码转换4510
36)原 =(36)反 36)补
00100100
(-45)原 10101101
(-45)反 11010010
(-45)补 11010011

0 0 1 0 0 1 0 0……(+36)10
+) 1 1 0 1 0 0 1 1……(-45)10
1 1 1 1 0 1 1 1……(-9)10
结果正确。
三、字符编码
  所谓字符编码就是规定用怎样的二进制编码来表示文字和符号。它主要有以下几种:1BCD码(二--十进制码);2ASCII码;3、汉字编码。
1BCD码(二--十进制码):
  把十进制数的每一位分别写成二进制数形式的编码,称为二--十进制编码或BCD编码。BCD编码方法很多,但常用的是8421编码:它采用4 位二进制数表示1位十进制数,即每一位十进制数用四位二进制表示。这4位二进制数各位权由高到低分别是23222120,即8421。这种编码最自然,最简单,且书写方便、直观、易于识别。
比如:十进制数19988421码为:
0001 1001 1001 1000
十进制: 1 9 9 8
8421: 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0
位权: 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
思考:
1、一个十进数的BCD码如何转换成十进制数?
2、一个十进制数的BCD码是该数的 二进制数吗?
3、一个十进制数的BCD码与二进制数之间如何相互转换?
2ASCII
ASCII码是计算机系统中使用得最广泛的一种编码(读作阿斯克伊码)。ASCII码虽然是美国国家标准,但它已被国际标准化组织(ISO)认定为国际标准。ASCII码已为世界公认,并在世界范围内通用。ASCII码有7位版本和8位版本两种。国际上通用的是7位版本。7位版本的ASCII码有128个元素,其中通用控制字符34个,阿拉伯数字10个,大、小写英文字母52个,各种标点符号和运算符号32个。
比如:A”的ASCII码值为:1000001,即十进制的65a”的ASCII码值为:1100001,即十进制的970ASCII码值为:0110000,即十进制的48

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。