《计算机科学导论第二章数制课件.ppt》由会员分享,可在线阅读,更多相关《计算机科学导论第二章数制课件.ppt(54页珍藏版)》请在三一办公上搜索。
1、2022/12/4,第2章,数制 Number Systems,2022/12/4,理解数制的概念. 分清位置化数制和非位置化数制. 描述十进制. 描述二进制. 将十进制转换为二进制、八进制或十六进制. 将二进制和八进制相互转换. 将二进制和十六进制相互转换. 查找在各种系统中代表特定数值所需的数码.,目标,通过本章的学习,同学们应该能够:,2022/12/4,2-1 引言 INTRODUCTION,数制定义了如何用独特的符号来表示一个数字. 在不同的系统中,数字有不同的表示方法. 例如,这两个数字 (2A)16 和 (52)8 都是指同样的数量 (42)10, 但是它们的表示截然不同. 一些
2、数制系统已经在过去广为使用,并可以分为两类:位置化数制和非位置化数制.我们的主要目标是讨论位置化数制系统,但也给出非位置化数制系统的例子.,2022/12/4,2-2 位置化数制系统 POSITIONAL NUMBER SYSTEMS,在位置化数制系统中,符号所占据的位置决定了其表示的值。,它的值是:,2022/12/4,位置化数制系统,其中,S是一套符号集, Si是数码(数字符号) ,b是底或基数(数码的个数). bi:权(数值中每一固定位置对应的单位),计数规则:逢基数进一 例: (123.45)10 = 1102+2101+3100+410-1+510-2 (101.01)2 = 122
3、+021+120+02-1+12-2,2022/12/4,下标法:用小括号将所表示的数括起来,然后在右括号右下角写上数制的基R。字母法:在所表示的数的末尾写上相应数制字母。,2022/12/4,2022/12/4,S = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,十进制系统The decimal system (以10为底),十进制来源于拉丁词根decem (ten). 在该系统中,底b = 10 ,并且我们用10个符号来表示一个数,该系统中的符号,常被称为十进制数码,或仅称为数码.,2022/12/4,整数,Figure 2.1 在十进制系统中使用位置量表示整数,2022/1
4、2/4,Example 2.1,在十进制系统中使用位置量表示整数+224.,注意,在位置1的数码2值为20,但是在位置2的同一个数码其值为200。通常我们省略掉的加号,实际上是隐含的.,2022/12/4,Example 2.2,在十进制系统中使用位置量表示整数7508.,可以用k表示的十进制整数的最大值?答案是Nmax=10k-1。如果k=5,那么这个最大值是Nmax=105-1=99999.,2022/12/4,实数,Example 2.3,以下显示了实数+24.13的位置量.,2022/12/4,二进制binary 来源于拉丁词根 bini (二). 在该系统中,底b = 2, 并且用两
5、个符号来表示一个数,二进制系统The binary system (以2为底),S = 0, 1,该系统中的符号常被称为二进制数码或位,2022/12/4,整数,Figure 2.2 在二进制系统中使用位置量表示整数,2022/12/4,Example 2.4,二进制数 (11001)2,下标2表示底是2.,相等的十进制数是 N = 16 + 8 + 0 + 0 + 1 = 25.,2022/12/4,实数,Example 2.5,与十进制数5.75等值的二进制数 (101.11)2.,2022/12/4,十六进制 hexadecimal 来源于希腊词根hex (six) 和拉丁词根 dece
6、m (ten). 在该系统中,底b = 16 ,并且用16个符号来表示一个数. 字符集是,,十六进制系统The hexadecimal system (以16为底),S = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,注意符号A, B, C, D, E, F 分别等于10, 11, 12, 13, 14, 15. 该系统中的符号常被称为十六进制数码.,2022/12/4,整数,Figure 2.3 在十六进制系统中使用位置量表示一个整数,2022/12/4,Example 2.6,与十进制数686等值的十六进制数 (2AE)16.,相等的十进制
7、数为 N = 512 + 160 + 14 = 686.,2022/12/4,八进制 octal 来源于拉丁词根 octo (八). 在该系统中,底 b = 8 ,并且用8个符号来表示一个数.字符集是,,八进制系统The octal system (以8为底),S = 0, 1, 2, 3, 4, 5, 6, 7,2022/12/4,整数,Figure 2.4 在八进制系统中使用位置量表示一个整数,2022/12/4,Example 2.7,八进制数 (1256)8.,相等的十进制数为N = 512 + 128 + 40 + 6 = 686.,2022/12/4,表2.1是本章讨论的四种位置化
8、系统的小结.,四种位置化系统总结,2022/12/4,表2.2显示了数字0到15在不同的系统中是如何表示的.,2022/12/4,如何将一种系统中的数字转换为另一个系统中等价的数字? 如何从其他进制转换到十进制. 如何从十进制转换到其他进制. 如何简便地进行二进制与八进制或十六进制之间的相互转换.,转换,2022/12/4,其他进制到十进制的转换,Figure 2.5 任意进制到十进制的转换,2022/12/4,Example 2.8,如何将二进制数(110.11)2 转换为十进制数6.75.,2022/12/4,Example 2.9,如何将十六进制数 (1A.23)16 转换为十进制数.,
9、注意这个十进制表示并不精确,因为 3 162 = 0.01171875. 四舍五入成三位小数 (0.012).,2022/12/4,Example 2.10,如何将八进制数 (23.17)8 转换为十进制数.,在十进制中 (23.17)8 19.234. 再一次, 我们把7 82 = 0.109375四舍五入.,2022/12/4,Figure 2.7 转换十进制的整数部分到其他进制,除基取余法,十进制到其他进制的转换,2022/12/4,Example 2.11,如何将十进制数35转换为二进制数?,从这个十进制数35开始,一边连续寻找除以2得到的商和余数,一边左移. 结果是 35 = (10
10、0011)2.,2022/12/4,Example 2.12,如何将十进制数126转换为八进制数.,一边连续寻找除以8得到的商和余数,一边左移. 结果是 126 = (176)8.,2022/12/4,Example 2.13,如何将十进制数126转换为十六进制数.,一边连续寻找除以16得到的商和余数,一边左移. 结果是126 = (7E)16,2022/12/4,例:将十进制整数(105)10转换为二进制整数。解: 2 105 2 52 余数为1 2 26 余数为0 2 13 余数为0 2 6 余数为1 2 3 余数为0 2 1 余数为1 0 余数为1 所以,(105)10(1101001)
11、2,2022/12/4,Figure 2.9 转换十进制的小数部分到其他进制,乘基取整法,转换十进制的小数部分到其他进制,2022/12/4,Example 2.14,将十进制数0.625转换为二进制数.,该例子显示小数部分如何计算.,2022/12/4,Example 2.15,如何将0.634转换为八进制数且精确到小数四位.,结果是 0.634 = (0.5044)8. 注意,乘以8 (以8为底).,2022/12/4,Example 2.16,如何将十进制数178.6转换为十六进制数,且精确到1位小数.,结果是178.6 = (B2.9)16 ,注意,以16为底时除以或乘以16.,202
12、2/12/4,Example 2.17,通常把小于 256的十进制数 转换为二进制数,有一个变通的方法,即把这个数分解为下列二进制位置量对应数的和:,2022/12/4,Example 2.18,当分母是2的幂次时,用类似的方法可以把十进制小数转换为二进制:,结果是 (0.011011)2,2022/12/4,二进制-十六进制的转换Binary-hexadecimal conversion,Figure 2.10 二进制与十六进制的互换,2022/12/4,Example 2.19,如何将二进制数 (10011100010)2转换为十六进制数,解:首先将二进制数排为4位一组的形式:,100 1
13、110 0010,注意:最左边一组可能是1到4位不等. 根据表2.2 所示的值对照每组等量转换得到十六进制数 (4E2)16.,2022/12/4,Example 2.20,与十六进制数(24C)16相等的二进制数是多少?,解:将每个十六进制数码转换成4位一组的二进制数:,2 0010, 4 0100, C 1100,结果是 (001001001100)2.,2022/12/4,二进制-八进制的转换Binary-octal conversion,Figure 2.11 二进制与八进制的互换,2022/12/4,Example 2.21,如何将二进制数(101110010)2转换为八进制数.,解
14、:每3位一组转换为1位八进制数码. 对照每3位一组等量转换得到八进制数.,结果是 (562)8.,101 110 010,2022/12/4,Example 2.22,与(24)8相等的二进制数是多少?,解:将每个八进制数码写成对等的二进制位组,2 010 4 100,结果是 (010100)2.,2022/12/4,八进制-十六进制的转换Octal-hexadecimal conversion,Figure 2.12 八进制与十六进制的互换,2022/12/4,Example 2.23,找出二进制数码的最小数,用于存储一个最大6个数码的十进制整数.,解:k = 6, b1 = 10, b2
15、= 2.,x = k (logb1 / logb2) = 6 (1 / 0.30103) = 20.,最大的6数码十进制数是 999,999 ,并且最大的20位二进制数1,048,575. 注意,可以用19位表示的最大的数是524287, 它比999,999小. 因此需要20位.,2022/12/4,2-3 非位置化数制系统 NONPOSITIONAL NUMBER SYSTEMS,尽管非位置化系统并不用在计算机中, 但我们给出简单的介绍作为和位置化数制系统的比较. 非位置化数制系统仍然使用有限的数字符号,每个符号有一个值. 但是,符号所占用的位置通常与其值无关,每个符号所占的位置是固定的.
16、为求出该数字的值,我们把所有符号表示的值相加.,2022/12/4,该系统数字表示为:,并有值为:,与前面提到的相加规则有一些例外,如例2.24所示.,2022/12/4,Example 2.24,罗马数制是非位置化数制系统的一个好例子. 该系统由罗马人发明,在欧洲一直使用到16世纪,该数制系统由一套符号集S = I, V, X, L, C, D, M. 每个符号的取值如表2.3所示,2022/12/4,为求一个数的值,需遵循特定法则将符号的值相加.1 相同的数字并列表示相加.表示2,XXX表示30 2 不同的数字并列,右边的小于左边的,表示相加。表示十进制数6,LX表示十进制数60 。3 不同的数字并列,左边的小于右边的,表示右边的减去左边的。表示十进制数4,表示9 4 对于大数字,在6种符号(除I以外)中的任意一个上方加横杆表示乘以1000.5 罗马数制中缺少数码0,2022/12/4,Example 2.24,下面显示了一些罗马数字及其值.,2022/12/4,习题,PP.24-26, 练习二3-44题,每道大题至少做一道小题,