1、第2章 信息表示与计算 第2章 信息表示与计算 2.1 常用计数制常用计数制 2.2 非此即彼非此即彼0和和1的奇妙世界的奇妙世界 2.3 如鱼得水如鱼得水0和和1与计算自动化与计算自动化 第2章 信息表示与计算 2.1 常常用用计计数数制制2.1.1 进位制计数法进位制计数法在计算机内使用进位制计数法表示数值。计数法是指用一组固定的符号和统一的规则来表示数值的方法。常用的计数法有十进制计数法、二进制计数法、八进制计数法和十六进制计数法。在计算机中,信息必须转换成二进制形式数据后才能由计算机进行处理。各类进制规则一览表如表2-1所示。第2章 信息表示与计算 表表2-1 各类进制规则一览表各类进
2、制规则一览表第2章 信息表示与计算 一般用()角标来表示不同进制的数,如:(256.12)10,(101.01)2,(123)8,(2F)16。也可以在数字的后面,用特定字母表示该数的进制,如:256.12D,101.01B,123O,2FH。各类进制对照表如表2-2所示。表表2-2 十进制、二进制、八进制和十六进制对照表十进制、二进制、八进制和十六进制对照表第2章 信息表示与计算 2.1.2 数制间的转换数制间的转换(1)N进制(二、八、十六进制)与十进制的转换:按权展开相加。用r表示其它进制,则有例:将二进制数1100110101.101转换成十进制数(1100110101.101)2=(
3、129+128+027+026+125+124+023+122+021+120+121+022+123)10=(512+256+32+16+4+1+0.5+0.125)10=(821.625)101nmiiiraK第2章 信息表示与计算(2)十进制转换为N进制(二、八、十六进制):整数部分除N取余,逆序排列,直到商为0(最后一个余数放在最左边,第一个余数放在最右边);小数部分乘N取整,顺序排列,直到小数部分为0,或者是规定的位数(最后一个整数放在最右边,第一个整数放在最左边)。例:(205.345)10=(11001101.01011)2,如图2.1所示。第2章 信息表示与计算 图2.1 十进
4、制换算为二进制过程第2章 信息表示与计算(3)二进制转换为八(十六)进制:以小数点为基点,向左右两个方向三(四)位并为一组,位数不足用0补齐,按对应关系表示。例:(1 101 101 110.110 101)2=(1556.65)8 三位一并法(11 0110 1110.1101 01)2=(36E.D4)16 四位一并法(4)八(十六)进制转换为二进制:一位八进制数对应三位二进制数(一分为三法),一位十六进制数对应四位二进制数(一分为四法)。例:(144)8=(001 100 100)2 一分为三法(64)16=(0110 0100)2 一分为四法第2章 信息表示与计算 2.2 非此即彼非此
5、即彼0和和1的奇妙世界的奇妙世界2.2.1 源远流长源远流长中华文化中的中华文化中的0和和1阴阳是古人对宇宙万物两种相反相成的性质的一种抽象,也是宇宙对立统一及思维法则的哲学范畴。古人将自然界中如天地、日月、昼夜、寒暑、男女、晴雨、好坏、是非、来去、上下、你我、变与不变等等各种两两对应、相反相成又对立统一的现象抽象归纳起来,提出了“阴阳”的概念。阴阳学说把矛盾运动中的万事万物概括为“阴”、“阳”两个对立的范畴,认为阴阳是构成世界的基础,并通过阴阳的组合和再组合形成“八卦”,来描述物质世界的运动和变化规律。阴阳概念是整个东方哲学的基本假设,在此基础上建立起庞大第2章 信息表示与计算 的中医、天文
6、、地理、数术、哲学等中华文化系统,深刻影响了中华民族乃至东亚地区的世界观和人生观。将阴阳概念和二进制进行对比,就不难发现二者之间惊人的相似。用“0”来表示“阴”,用“1”来表示“阳”,数的二进制就等同于自然界的“阴”和“阳”,自然界中现实存在的阴阳两种能量与计算机世界中虚拟的二进制一样,真实地构成了我们的大千世界。第2章 信息表示与计算 易经就是讲阴阳变化的数理和哲理,它采用“阴”(用两条短线或用“六”来标识)和“阳”(用一条长线或用“九”来标识)来表征0和1两个基本素数,其进位制就是二进制。八卦中的每一卦都是采用三画阴阳形成的一个组合,八卦便可以表示八种语义,如图2.2所示。如果每卦采用六画
7、阴阳组成一个组合,则形成了更为复杂的六十四卦,可以表示六十四种语义,如图2.3所示。易学里的“阴阳爻”不但继承了自然界“阴阳”的符号,同时还复制了自然界阴阳能量对立统一的规律,并通过阴阳、五行、干支等文字符号以及“卦”的图形符号模拟了阴阳能量的相互影响和作用,抽象地揭示出现实世界的存在和演化规律,即孔子所谓的“一阴一阳谓之道”。第2章 信息表示与计算 图2.2 八卦语义 第2章 信息表示与计算 图2.3 六十四卦语义 第2章 信息表示与计算 2.2.2 万象归一万象归一信息的信息的0、1化化1.数值信息表达数值信息表达1)带符号数的表示在代数中,人们表示带符号的数值数据时,习惯于在绝对值前面加
8、上“+”或“”符号来表示数值。而由于计算机只能直接识别和处理二进制数据,因此对于数值符号和数据必须都采用“0”和“1”来进行代码化。在计算机用一个数的最高位(即左边第一位)存放符号,正数为0,负数为1。这种连同数值符号一起采用二进制表示的形式,称之为机器数或机器码。比如,计算机字长为8位时,十进制中的数+1,转换成二进制就是00000001。如果是1,就是10000001。那么,第2章 信息表示与计算 这里的00000001和10000001就是机器数。因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如有符号数10000001,其最高位1代表负,其真正数值是1而不是10000001
9、转换成十进制所得到的129。而代数形式中用“+”或“”符号加绝对值来表示的方式称之为真值。例如:00000001的真值为+1,10000001的真值为1。在计算机中,对带符号数的机器数有多种定义和表示方法,常用的有原码、反码和补码表示。(1)原码。原码是基础的定点整数编码,就是符号位加上真值的绝对值,即用最高位表示符号(正数为0,负数为1),其余位表示值,比如对于8位二进制:第2章 信息表示与计算+7原=0000 01117原=1000 0111原码是与真值形式最为接近的表示方式。如果用n位二进制来存放原码,能表示的整数值范围为(2n1+1)(2n11),例如8位二进制数的取值范围就是1271
10、27。使用时,要注意数的取值范围,如果要表示的数超过能够表示的范围,则会导致高位的丢失,从而导致错误,称之为溢出。需要注意的是,0具有(00000000)原和(10000000)原两种不同的原码表示形式,通常0的原码采用(00000000)原表示。第2章 信息表示与计算(2)反码。反码表示法规定:正数的反码与原码相同;负数的反码是在其原码的基础上,符号位不变,其余各位取反(即0变1,1变0)。以8位二进制为例:+10反=+10原=0000101010原=1000101010反=11110101(3)补码。在补码的表示中,正数的表示方法与原码相同,负数的补码在其反码的最低有效位上加1(即在其原码
11、的基础上,符号位不变,其余各位取反,最后+1)。例如:15原=1000111115反=1111000015补=11110001第2章 信息表示与计算 总之,计算机可以采用原码、反码和补码三种编码方式来表示一个数。正数的三种编码方式的结果都相同,而负数的原码、反码和补码是完全不同的。在计算机中实际是以补码的形式来表示负数,因为用补码表示负数后,所有的运算只要通过加法运算就可以完成了。第2章 信息表示与计算 2)带小数点实数的表示对于带有小数点的实数,计算机的处理方式有两种:定点数表示和浮点数表示。(1)定点数:小数点隐含在某一固定位置,并不直接出现在二进制数值中,即默认小数点的存在,但计算机不存
12、储小数点。其中,定点整数约定小数点的位置在机器数的最右边,说明机器数全为整数;定点小数约定小数点的位置在符号位与有效数值之间,说明机器数全为小数。第2章 信息表示与计算(2)浮点数:小数点位置可以任意浮动,在计算机中,采用科学计数法来表示数。浮点数由符号位、尾数位和阶码位三部分组成。数值位数为32位的称为单精度浮点数,其中,最高1位为符号位,后面为8位指数位,最后为23位尾数位。数值位数为64位的称为双精度浮点数,其中,最高1位为符号位,后面为11位指数位,最后为52位尾数位。由此可见,单精度浮点数和双精度浮点数的区别在于表示的范围和精确度不同。任意二进制数可表示为:N=数符尾数2阶符阶码,在
13、阶符和数符中“0”表示“+”,“1”表示“”;尾数表示的是纯小数部分,其绝对值大于等于0.1并且小于1,尾数的位数决定了数的精度;阶码的位数决定了数的范围。第2章 信息表示与计算 2.英文字母符号的表达英文字母符号的表达英文符号指的是英文字母、标点符号和特殊符号,以及作为符号使用的数字。在计算机中是以二进制的形式存储和处理数据的,因此这些字符也必须按特定的规则(约定码)进行制编码。为了便于信息交换,目前国际上广泛采用的编码方式为“美国标准信息交换码”American Standard Code of Information Interchange(简称为“ASCII码”),如表2-3所示。第2
14、章 信息表示与计算 表表2-3 ASCII码码(美国标准信息交换码美国标准信息交换码)表表第2章 信息表示与计算 续表 Bin Dec 缩写/字符 解释 Bin Dec 缩写/字符 解释 01000000 64 01100000 96 01000001 65 A 01100001 97 a 01000010 66 B 01100010 98 b 01000011 67 C 01100011 99 c 01000100 68 D 01100100 100 d 01000101 69 E 01100101 101 e 01000110 70 F 01100110 102 f 01000111 71
15、 G 01100111 103 g 01001000 72 H 01101000 104 h 01001001 73 I 01101001 105 i 01001010 74 J 01101010 106 j 01001011 75 K 01101011 107 k 01001100 76 L 01101100 108 l 01001101 77 M 01101101 109 m 01001110 78 N 01101110 110 n 01001111 79 O 01101111 111 o 01010000 80 P 01110000 112 p 01010001 81 Q 0111000
16、1 113 q 01010010 82 R 01110010 114 r 01010011 83 S 01110011 115 s 01010100 84 T 01110100 116 t 01010101 85 U 01110101 117 u 01010110 86 V 01110110 118 v 01010111 87 W 01110111 119 w 01011000 88 X 01111000 120 x 01011001 89 Y 01111001 121 y 01011010 90 Z 01111010 122 z 01011011 91 01111011 123 010111
17、00 92 01111100 124|01011101 93 01111101 125 01011110 94 01111110 126 01011111 95 _ 01111111 127 DEL 删除 第2章 信息表示与计算 ASCII码于1967年定案,是由美国国家标准学会(American National Standard Institute,ANSI)制定的标准的单字节字符编码方案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,现已被国际标准化组织(International Organization for Standardization,ISO)
18、定为国际标准,称为ISO 646标准,主要用于显示现代英语和其他西欧语言,并已成为现今最通用的单字节编码系统。第2章 信息表示与计算 ASCII码用7位二进制数表示一个字符的编码,共有27=128个不同的编码值,相应地可以表示128个不同字符的编码。其中,有34个控制字符(00H20H和7FH)和94个字符编码(包括10个数码、52个英文字母、32个通用字符,编码范围从21H7EH)。在计算机内部用一个字节存放一个7位ASCII码,最高位置为0。在计算机中对字符进行排序就是根据其ASCII码来比较大小的。例如,空格的ASCII码值小于数字的ASCII码值,数字的ASCII码值小于大写英文字母的
19、ASCII码值,大写英文字母的ASCII码值小于小写英文字母的ASCII码值。其中,数字的ASCII码按照由小到大的顺序依次排列,英文字母的ASCII码按照字母顺序依次排列。第2章 信息表示与计算 3.汉字的表达汉字的表达1)国标码1981年我国颁布了国家标准信息交换用汉字编码字符集(GB231280),这一汉字编码的国家标准称之为“国标码”。这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。国标码涵盖7445个字符编码,其中,1级汉字3755个,按汉语拼音顺序排列;2级汉字3008个,按部首和笔画排列;常用符号、字母、图形符号等682个。之后,又根据信息技术发展
20、需要,不断推出了多个基本集的扩充字符集、辅助字符集等。中华人民共和国国家标准总局于2000年推出强制性的GB 180302000标准。第2章 信息表示与计算 于2001年8月31日后发布或出厂的产品,必须符合GB 180302000的相关要求。国家标准强制标准冠以“GB”,推荐标准冠以“GB/T”。信息处理常用的国家标准强制标准如表2-4所示。第2章 信息表示与计算 表表2-4 信息处理用国家标准强制标准信息处理用国家标准强制标准第2章 信息表示与计算 以GB231280为例,在代码表中,纵向分为94行,横向分为94列。行与列分别为七位,取值从0100001到1111110。一个汉字的国标码用
21、两个字节表示,第一字节表示汉字所在的行,第二字节表示汉字所在的列。例如:第2章 信息表示与计算 2)区位码将GB231280代码表中的行号称为区号,列号称为位号,分别有94个区和94个位,根据区号和位号就可以唯一地标识出汉字,这种编码方式称之为“区位码”。国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码。区位码的前两位叫做区码,后两位叫做位码。在区位码中,1655区为一级汉字区(3755个最常用的汉字,按拼音字母的次序排列);5687区为二级汉字区(3008个汉字,按部首次序排列);19
22、区为三级汉字,包括字母、数字、特殊图形符号第2章 信息表示与计算 等;1015区为用户自定义区。例如,“宝”字的区位码是1706,“场”字的区位码是1901,“厂”字的区位码是1907,等等。将一个汉字的十进制区号和十进制位号分别转换为十六进制数,然后再分别加上20(H),就是该汉字的国标码。例如:已知汉字“家”的区位码是2850,将区位码的区号和位号分别转换为十六进制,得到1C32(H),再加上2020(H),则汉字“家”的国标码是:1C32(H)+2020(H)=3C52(H)。第2章 信息表示与计算 3)机内码汉字机内码是在计算机内部实际使用来表示汉字的代码。以国标码规定的双七位代码为依
23、据,转换后用两个字节表示,字节的最高位均为1。如“尝”字:采用十六进制表示时,可以看出,将国标码加上8080(H),就可以得到该字的机内码。第2章 信息表示与计算 2.3 如鱼得水如鱼得水0和和1与计算自动化与计算自动化2.3.1 计算机内的数值运算计算机内的数值运算对使用二进制的计算机而言,所有复杂的数值运算都可以用四则运算来实现。乘法可由加法实现、除法可由减法实现。而只要使用补码,减法也可由加法实现。因此,计算机只要做“加法”即可完成各种数值计算。计算机内二进制的加法和乘法运算规则如图2.4和图2.5所示。第2章 信息表示与计算 图2.4 二进制加法运算规则 第2章 信息表示与计算 图2.5 二进制乘法运算规则 第2章 信息表示与计算 2.3.2 计算机内的逻辑运算计算机内的逻辑运算任何复杂的逻辑运算都可以由逻辑与(用“AND”或“.”表示)、逻辑或(用“OR”或“+”表示)和逻辑非(用“NOT”或“”表示)三种基本逻辑运算来实现。逻辑变量的取值和运算结果只有“真”(True)和“假”(False)两个值,在计算机中,“真”用“1”表示,“假”用“0”表示。三种基本逻辑运算真值表如表2-5所示。第2章 信息表示与计算 表表2-5 基本逻辑运算真值表基本逻辑运算真值表