1、12022-5-3022022-5-30q 理解数制的概念理解数制的概念.q 分清位置化数制和非位置化数制分清位置化数制和非位置化数制.q 描述十进制描述十进制. q 描述二进制描述二进制.q 将十进制转换为二进制、八进制或十六进制将十进制转换为二进制、八进制或十六进制.q 将二进制和八进制相互转换将二进制和八进制相互转换.q 将二进制和十六进制相互转换将二进制和十六进制相互转换.q 查找在各种系统中代表特定数值所需的数码查找在各种系统中代表特定数值所需的数码.目标目标 通过本章的学习,同学们应该能够通过本章的学习,同学们应该能够:32022-5-30数制定义了如何用独特的符号来表示一个数字数
2、制定义了如何用独特的符号来表示一个数字. 在不同的系统中,数字有不同的表示方法在不同的系统中,数字有不同的表示方法. 例如,这两个数字例如,这两个数字 (2A)16 和和 (52)8 都是指同样的数量都是指同样的数量 (42)10, 但是它们的表示截然不同但是它们的表示截然不同. 一一些数制系统已经在过去广为使用,并可以分为两类:些数制系统已经在过去广为使用,并可以分为两类:位置化数制和非位置化数制位置化数制和非位置化数制.我们的主要目标是讨论位置化数制系统,但也给出非我们的主要目标是讨论位置化数制系统,但也给出非位置化数制系统的例子位置化数制系统的例子.42022-5-30在位置化数制系统中
3、,符号所占据的位置决定在位置化数制系统中,符号所占据的位置决定了其表示的值。了其表示的值。它的值是它的值是:52022-5-30其中,其中,S S是一套符号集,是一套符号集, S Si i是数码(数字符号)是数码(数字符号) ,b b是底或基数(数码的个数)是底或基数(数码的个数) b bi i:权(数值中每一固定位置对应的单位)权(数值中每一固定位置对应的单位)计数规则:逢基数进一计数规则:逢基数进一 例:例: (123.45)10 = 1102+2101+3100+410-1+510-2 (101.01)2 = 122+021+120+02-1+12-2 62022-5-30u下标法:用小
4、括号将所表示的数括起来,下标法:用小括号将所表示的数括起来,然后在右括号右下角写上数制的基然后在右括号右下角写上数制的基R。u字母法:在所表示的数的末尾写上相应数字母法:在所表示的数的末尾写上相应数制字母。制字母。72022-5-30进进 制制 符符 号号 数数 码码二二 进进 制制 B (Binary) 01八八 进进 制制 O (Octal) 07十十 进进 制制 D (Decimal) 09十六进制十六进制H (Hexadecimal)09,AF82022-5-30S = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9十进制系统十进制系统The decimal system (
5、以以10为底为底) 十进制来源于拉丁词根十进制来源于拉丁词根decem (ten). 在该系统中,底在该系统中,底b = 10 ,并且我们用并且我们用10个符号来表示一个数个符号来表示一个数该系统中的符号,常被称为十进制数码,该系统中的符号,常被称为十进制数码,或仅称为数码或仅称为数码. 92022-5-30整数整数Figure 2.1 在十进制系统中使用位置量表示整数在十进制系统中使用位置量表示整数 102022-5-30Example 2.1在十进制系统中使用位置量表示整数在十进制系统中使用位置量表示整数+224.注意,注意,u在位置在位置1的数码的数码2值为值为20,但是在位置,但是在位
6、置2的的同一个数码其值为同一个数码其值为200。u通常我们省略掉的加号,实际上是隐含的通常我们省略掉的加号,实际上是隐含的.112022-5-30Example 2.2在十进制系统中使用位置量表示整数在十进制系统中使用位置量表示整数7508. 可以用可以用k表示的十进制整数的最大值?表示的十进制整数的最大值?答案是答案是Nmax=10k-1。如果如果k=5,那么这个最大值是,那么这个最大值是Nmax=105-1=99999.()Values122022-5-30实数实数Example 2.3以下显示了实数以下显示了实数+24.13的位置量的位置量.132022-5-30二进制二进制binary
7、 来源于拉丁词根来源于拉丁词根 bini (二二). 在该系统中,底在该系统中,底b = 2, 并且用两个符号来表示一个数并且用两个符号来表示一个数 二进制系统二进制系统The binary system (以以2为底为底) S = 0, 1该系统中的符号常被称为二进制数码或位该系统中的符号常被称为二进制数码或位 142022-5-30整数整数 Figure 2.2 在二进制系统中使用位置量表示整数在二进制系统中使用位置量表示整数 152022-5-30Example 2.4二进制数二进制数 (11001)2,下标下标2表示底是表示底是2.相等的十进制数是相等的十进制数是 N = 16 + 8
8、 + 0 + 0 + 1 = 25.162022-5-30实数实数Example 2.5172022-5-30十六进制十六进制 hexadecimal 来源于希腊词根来源于希腊词根hex (six) 和拉丁和拉丁词根词根 decem (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
9、, E, F 分别等于分别等于10, 11, 12, 13, 14, 15. 该系统中的符号常被称为十六进制数码该系统中的符号常被称为十六进制数码.182022-5-30整数整数Figure 2.3 在十六进制系统中使用位置量表示一个整数在十六进制系统中使用位置量表示一个整数 192022-5-30Example 2.6与十进制数与十进制数686等值的十六进制数等值的十六进制数 (2AE)16.相等的十进制数为相等的十进制数为 N = 512 + 160 + 14 = 686.202022-5-30八进制八进制 octal 来源于拉丁词根来源于拉丁词根 octo (八八). 在该系统中,底在该
10、系统中,底 b = 8 ,并且用,并且用8个符号来表示一个数个符号来表示一个数.字符集是,字符集是,八进制系统八进制系统The octal system (以以8为底为底)S = 0, 1, 2, 3, 4, 5, 6, 7 212022-5-30整数整数Figure 2.4 在八进制系统中使用位置量表示一个整数在八进制系统中使用位置量表示一个整数 222022-5-30Example 2.7 八进制数八进制数 (1256)8.相等的十进制数为相等的十进制数为N = 512 + 128 + 40 + 6 = 686.232022-5-30表表2.1是本章讨论的四种位置化系统的小结是本章讨论的四
11、种位置化系统的小结.四种位置化系统总结四种位置化系统总结 242022-5-30表表2.2显示了数字显示了数字0到到15在不同的系统中是如何表示的在不同的系统中是如何表示的. 252022-5-30如何将一种系统中的数字转换为另一个系统如何将一种系统中的数字转换为另一个系统中等价的数字?中等价的数字? 如何从其他进制转换到十进制如何从其他进制转换到十进制. 如何从十进制转换到其他进制如何从十进制转换到其他进制. 如何简便地进行二进制与八进制或十六进制如何简便地进行二进制与八进制或十六进制之间的相互转换之间的相互转换.转换转换 262022-5-30其他进制到十进制的转换其他进制到十进制的转换
12、Figure 2.5 任意进制到十进制的转换任意进制到十进制的转换 272022-5-30Example 2.8如何将二进制数如何将二进制数(110.11)2 转换为十进制数转换为十进制数6.75. 282022-5-30Example 2.9如何将十六进制数如何将十六进制数 (1A.23)16 转换为十进制数转换为十进制数.注意这个十进制表示并不精确,注意这个十进制表示并不精确,因为因为 3 162 = 0.01171875. 四舍五入成三位小数四舍五入成三位小数 (0.012). 292022-5-30Example 2.10如何将八进制数如何将八进制数 (23.17)8 转换为十进制数转
13、换为十进制数.在十进制中在十进制中 (23.17)8 19.234. 再一次再一次, 我们把我们把7 82 = 0.109375四舍五入四舍五入.302022-5-30Figure 2.7 转换十进制的整数部分到其他进制转换十进制的整数部分到其他进制 除基取余法除基取余法十进制到其他进制的转换十进制到其他进制的转换 312022-5-30Example 2.11如何将十进制数如何将十进制数35转换为二进制数?转换为二进制数?从这个十进制数从这个十进制数35开始,一边连续寻找除以开始,一边连续寻找除以2得到的商和余数,一边左移得到的商和余数,一边左移. 结果是结果是 35 = (100011)2
14、.322022-5-30Example 2.12如何将十进制数如何将十进制数126转换为八进制数转换为八进制数. 一边连续寻找除以一边连续寻找除以8得到的商和余数,一边左移得到的商和余数,一边左移. 结果是结果是 126 = (176)8.332022-5-30Example 2.13 如何将十进制数如何将十进制数126转换为十六进制数转换为十六进制数. 一边连续寻找除以一边连续寻找除以16得到的商和余数,一边左移得到的商和余数,一边左移. 结果是结果是126 = (7E)16342022-5-30例例:将十进制整数(:将十进制整数(105105)1010转换为二进制整数。转换为二进制整数。解
15、:解: 2 2 105 105 2 2 52 52 余数为余数为1 1 2 2 26 26 余数为余数为0 0 2 2 13 13 余数为余数为0 0 2 2 6 6 余数为余数为1 1 2 2 3 3 余数为余数为0 0 2 2 1 1 余数为余数为1 1 0 0 余数为余数为1 1 所以,(所以,(105105)1010(11010011101001)2 2352022-5-30Figure 2.9 转换十进制的小数部分到其他进制转换十进制的小数部分到其他进制 乘基取整法乘基取整法 转换十进制的小数部分到其他进制转换十进制的小数部分到其他进制 362022-5-30Example 2.14
16、将十进制数将十进制数0.625转换为二进制数转换为二进制数.该例子显示小数部分如何计算该例子显示小数部分如何计算. 372022-5-30Example 2.15如何将如何将0.634转换为八进制数且精确到小数四位转换为八进制数且精确到小数四位. 结果是结果是 0.634 = (0.5044)8. 注意,乘以注意,乘以8 (以以8为底为底).382022-5-30Example 2.16如何将十进制数如何将十进制数178.6转换为十六进制数,且精确到转换为十六进制数,且精确到1位小数位小数. 结果是结果是178.6 = (B2.9)16 ,注意,以注意,以16为底时除以或乘以为底时除以或乘以1
17、6.392022-5-30Example 2.17通常把小于通常把小于 256的十进制数的十进制数 转换为二进制数,转换为二进制数,有一个变通的方法,即把这个数分解为下列二进制有一个变通的方法,即把这个数分解为下列二进制位置量对应数的和位置量对应数的和:402022-5-30Example 2.18当分母是当分母是2的幂次时,的幂次时,用类似的方法可以把十进制小数转换为二进制用类似的方法可以把十进制小数转换为二进制:412022-5-30二进制二进制-十六进制的转换十六进制的转换Binary-hexadecimal conversionFigure 2.10 二进制与十六进制的互换二进制与十六
18、进制的互换 422022-5-30Example 2.19如何将二进制数如何将二进制数 (10011100010)2转换为十六进制数转换为十六进制数 解:解:首先将二进制数排为首先将二进制数排为4位一组的形式位一组的形式:100 1110 0010注意注意:最左边一组可能是最左边一组可能是1到到4位不等位不等. 根据表根据表2.2 所示的值对照每组等量转换得到十六进制所示的值对照每组等量转换得到十六进制数数 (4E2)16.432022-5-30Example 2.20与十六进制数与十六进制数(24C)16相等的二进制数是多少相等的二进制数是多少? 解:解:将每个十六进制数码转换成将每个十六进
19、制数码转换成4位一组的二进制数位一组的二进制数:2 0010, 4 0100, C 1100结果是结果是 (001001001100)2.442022-5-30二进制二进制-八进制的转换八进制的转换Binary-octal conversionFigure 2.11 二进制与八进制的互换二进制与八进制的互换 452022-5-30Example 2.21如何将二进制数如何将二进制数(101110010)2转换为八进制数转换为八进制数.解:解:每每3位一组转换为位一组转换为1位八进制数码位八进制数码. 对照每对照每3位一组等量转换得到八进制数位一组等量转换得到八进制数. 结果是结果是 (562)
20、8.101 110 010462022-5-30Example 2.22与与(24)8相等的二进制数是多少相等的二进制数是多少?解:解:将每个八进制数码写成对等的二进制位组将每个八进制数码写成对等的二进制位组2 010 4 100结果是结果是 (010100)2.472022-5-30八进制八进制-十六进制的转换十六进制的转换Octal-hexadecimal conversionFigure 2.12 八进制与十六进制的互换八进制与十六进制的互换 482022-5-30Example 2.23找出二进制数码的最小数,用于存储一个最大找出二进制数码的最小数,用于存储一个最大6个数个数码的十进制
21、整数码的十进制整数.解:解:k = 6, b1 = 10, b2 = 2. x = k (logb1 / logb2) = 6 (1 / 0.30103) = 20. 最大的最大的6数码十进制数是数码十进制数是 999,999 ,并且最大的并且最大的20位二进制数位二进制数1,048,575. 注意,可以用注意,可以用19位表示的最大的数是位表示的最大的数是524287, 它比它比999,999小小. 因此需要因此需要20位位.492022-5-30尽管非位置化系统并不用在计算机中尽管非位置化系统并不用在计算机中, 但我们给出简但我们给出简单的介绍作为和位置化数制系统的比较单的介绍作为和位置化
22、数制系统的比较. 非位置化数制系统仍然使用有限的数字符号,每个非位置化数制系统仍然使用有限的数字符号,每个符号有一个值符号有一个值. 但是,符号所占用的位置通常与其值无关,每个符但是,符号所占用的位置通常与其值无关,每个符号所占的位置是固定的号所占的位置是固定的. 为求出该数字的值,我们把所有符号表示的值相加为求出该数字的值,我们把所有符号表示的值相加. 502022-5-30该系统数字表示为该系统数字表示为:并有值为并有值为:与前面提到的相加规则有一些例外,如例与前面提到的相加规则有一些例外,如例2.24所示所示. 512022-5-30Example 2.24罗马数制是非位置化数制系统的一
23、个好例子罗马数制是非位置化数制系统的一个好例子. 该系统由罗马人发明,在欧洲一直使用到该系统由罗马人发明,在欧洲一直使用到16世纪,世纪,该数制系统由一套符号集该数制系统由一套符号集S = I, V, X, L, C, D, M. 每个符号的取值如表每个符号的取值如表2.3所示所示522022-5-30为求一个数的值,需遵循特定法则将符号的值相加为求一个数的值,需遵循特定法则将符号的值相加.1 相同的数字并列表示相加相同的数字并列表示相加.表示表示2,XXX表示表示30 2 不同的数字并列,右边的小于左边的,表示相加。不同的数字并列,右边的小于左边的,表示相加。表示十进制数表示十进制数6,LX
24、表示十进制数表示十进制数60 。3 不同的数字并列,左边的小于右边的,表示右边不同的数字并列,左边的小于右边的,表示右边的减去左边的。的减去左边的。表示十进制数表示十进制数4,表示表示9 4 对于大数字,在对于大数字,在6种符号(除种符号(除I以外)中的任意一以外)中的任意一个上方加横杆表示乘以个上方加横杆表示乘以1000.5 罗马数制中缺少数码罗马数制中缺少数码0 532022-5-30Example 2.24下面显示了一些罗马数字及其值下面显示了一些罗马数字及其值.542022-5-30习题习题nPP.24-26, 练习二练习二n3-44题,每道大题至少做一道小题题,每道大题至少做一道小题