收藏 分享(赏)

进制转换.doc

上传人:gnk289057 文档编号:9577271 上传时间:2019-08-16 格式:DOC 页数:13 大小:115.50KB
下载 相关 举报
进制转换.doc_第1页
第1页 / 共13页
进制转换.doc_第2页
第2页 / 共13页
进制转换.doc_第3页
第3页 / 共13页
进制转换.doc_第4页
第4页 / 共13页
进制转换.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、计算机基础:进制转换课题引入生活中其实很多地方的计数方法都多少有点不同进制的影子。比如我们最常用的 10进制,其实起源于人有 10 个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用 20 进制。至于二进制没有袜子称为 0 只袜子,有一只袜子称为 1 只袜子,但若有两袜子,则我们常说的是:1 双袜子。生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度知识阅读:周易 、二进制和计算机大家知道,在电子计算机中,信息、指令、状态都是用二进制数表示的,运算、处理也是用二进制数进行的。随着计算机的普及,二进制愈来愈成为人们津津乐道的话题。在数学史

2、上,二进制数系是和德国伟大的数学家 Leibniz(16461716)的名字联系在一起的。现在流行着一种时髦的说法,说二进制来源于中国,因为周易中早已有了二进制。还有人进一步发挥说,既然二进制来源于中国,那么,计算机的老祖宗也应该在中国。某大报在头版头条论述所谓“留给二十一世纪的悬念”的文章中就说,Leibniz 受周易启发,发明了二进制和计算机。一、十进制数 十进制数是日常生活中使用最广的计数制。组成十进制数的符号有0,1,2,3,4,5,6,7,8,9 等共十个符号,我们称这些符号为数码。在十进制中,每一位有 09 共十个数码,所以计数的基数为 10。超过 9 就必须用多位数来表示。十进制

3、数的运算遵循:加法时:“逢十进一”;减法时:“借一当十”。十进制数中,数码的位置不同,所表示的值就不相同。式中,每个对应的数码有一个系数 1000,100,10,1 与之相对应,这个系数就叫做权或位权。十进制数的位权一般表示为:10 n-1 式中,10 为十进制的进位基数;10 的 i 次为第 i 位的权;n 表示相对于小数点的位置,取整数;当 n 位于小数点的左边时,依次取 n=1、2、3n。位于小数点的右边时,依次取 n=-1、-2、-3因此,634.27 可以写为:634.27=6102+3101+4100+210-1+710-2在正常书写时,各数码的位权隐含在数位之中,即个位、十位、百

4、位等。二、二进制计算机作为一种电子计算工具,是由大量的电子器件组成的,在这些电子器件中,电路的通和断、电位的高和低,用两个数字符号“1”和“0”分别表示容易实现。同时二进制的运算法则也很简单,因此,在计算机内部通常用二进制代码来作为内部存储、传输和处理数据。1、可行性:若使用十进制数,则需要这样的电子器件,它必须有能表示 09 数码的10 个物理状态,这在技术上是相当困难的(目前为止没有完全解决),而使用二进制数,只需 0,1 两个状态,技术上轻而易举,如开关的通与断,晶体管中导通与截止等,磁介质的带磁与不带磁。2、可靠性:二进制只有两种状态,数字传输处理不易出错。3、简易性:二进制运算法则比

5、较简单,如:求和法则(3 个) :0+0=0 , 0+1=1+0=1, 1+1=10求积法则(3 个) :00=0,01=10=0, 11=1这就使计算机运算器的结构大大简化,控制也简单,较容易实现4、逻辑性:可用进制的 0,1 直接代表逻辑代数中的“假”和“真”因此,电子计算机处理的信息,都是仅用“0”与“1”两个简单数字表示的信息,或者是用这种数字进行了编码的信息。这种数制叫做二进制。要了解计算机,首先要了解计算机中数的表示方法。为了区别不同数制表示的数,通常用右括另外下标数字或字母表示数制,十进制数用D 表示,二进制用 B 表示,十六进制数用 H 表示,八进制用 O 表示。二进制计算法的

6、特点:二进制数只有“0”和“1”两个数码,基数是 2,最大的数字是 1;采用逢二进一的原则。二进制的位权一般表示为:2 n-1。各位的权为以 2 为底的幂。例如,(01101010)各位的权自至在依次为 27、2 6、2 5、2 4、2 3、2 2、2 1、2 0。二进制数的算术四则运算规则,除进、借位外与十进制数相同。二进制加法规则00=0 10=101=1 11=10(粗体为进位位)二进制减法规则0-0=0 0-1=1-借位1-0=1 1-1=0二进制乘法规则00=0 10=001=0 11=1为了区别于十进制数,在书写时二进制数可以用两种方法表示:例如:(1011.01) 2或1011.

7、1B。例如:写出(1011.01) 2的十进制数表达式。(1011.01)2=123+022+121+120+02-1+12-2=(11.25)10二进制数第 0 位的权值是 2 的 0 次方,第 1 位的权值是 2 的 1 次方所以,设有一个二进制数:0110 0100,转换为 10 进制为下面是竖式:第 0 位 0 * 2 0 = 0第 1 位 0 * 2 1 = 0第 2 位 1 * 2 2 = 4第 3 位 0 * 2 3 = 0第 4 位 0 * 2 4 = 0第 5 位 1 * 2 5 = 32第 6 位 1 * 2 6 = 64第 7 位 0 * 2 7 = 0-100 用横式计

8、算为:0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100注意:0 乘以多少都是 0,所以我们也可以直接跳过值为 0 的位:1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100从上面可以看出计数的习惯都是从 0 开始,所以,在你看明白上面那行内容后,让我们立刻改口换成下面的说法,以后我们只用这种说法:二进制数:第 0 位数表示几个 1 (2 0),第 1 位数表示几个 2(2 1),第 3 位数表示几个 4(2 2),第 4 位数表示向个 8(23)按照这种说法,我们可以

9、发现,从右向左数,第 n 位数的权值 = 2 的 n 次方。二进制各位权值的计算方法: 第 n 位权值 = 2 n下表详细地表示 2 进制数:11111111 是如何逐位计算,累加得到 10 进制的值:第几位 7 6 5 4 3 2 1 0权值 27=128 26=64 25=32 24=16 23=8 22=4 21=2 20=12 进制 1 1 1 1 1 1 1 1合计10 进制 128 64 32 16 8 4 2 1 255上表表示了这么一个计算过程(*表示乘号): 1 * 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 1 * 2

10、1 + 1* 20 = 255(顺便说一句,如果你忘了 20 等于多少有点迟疑,请复习一下初中的数学知识:任何数的 0 次方都等于 1)结果是:11111111(b) = 255 (d)(为不了互相混淆,我们在书中常用(b/B)来表示前面的数是 2 进制的,而(d/D)则表示该数是 10 进制数。同样地,另有 8 进制数用(o/O)表示,16 进制用(h/H)表示。不过记住了,这只是在书中使用,在程序中,另有一套表示方法。)以前我们知道 1 个字节有 8 位,现在通过计算,我们又得知:1 个字节可以表达的最大的数是 255,也就是说表示 0255 这 256 个数。那么两个字节(双字节数)呢?

11、双字节共 16 位。 1111111111111111,这个数并不大,但长得有点眼晕,从现在起,我们要学会这样来表达二制数:1111 1111 1111 1111,即每 4 位隔一空格。双字节数最大值为:1 * 215 + 1 *214 + 1* 213 + 1 * 212 + 1 * 211 + 1 * 210 + + 1 * 22 + 1 * 21 + 1* 20 = 65535很自然,我们可以想到,一种数据类型允许的最大值,和它的位数有关。具体的计算方法方法是,如果它有 n 位,那么最大值就是:n 位二进制数的最大值:1 * 2 (n-1) + 1 * 2(n-2) + . + 1 *

12、20任何一种基本数据类型,都有其范围。比如字符类型,它的最大值是 255,那么,当一个数在其类型的范围已经是最大值时,如果再往上加 1,就会照成“溢出”。其实,有限定的范围的数量,并不只在计算机中出现。钟表就是一个例子。10 点再加 1 点是 11 点,再加 1 点是 12 点,可是再加 1 点,就又回到 1 点。再如汽车的行程表,假设最多只能显示 99999 公里,当达到最高值后继续行驶,行程表就会显示为00000 公里。二进制的优点是:二进制只有“0”和“1”两数字,很容易表示。电压的高和低、 晶体管的截止与饱和、磁性材料的磁化方向等都可以表示为“0”和“1”两种状态。二进制数的每一位只有

13、 0 和 1 两状态,只需要两种设备就能表示, 所以二进制数节省设备。由于状态简单,所以抗干扰力强,可靠性高。二进制的主要缺点是数位太长,不便阅读和书写,人们也不习惯。为此常用八进制和十六进制作为二进制的缩写方式。为了适应人们的习惯,通常在计算机内都采用二进制数,输入和输出采用十进制数,由计算机自己完成二进制与十进制之间的相互转换。三、十六进制数二进制数在计算机系统中处理很方便,但当位数较多时,比较难记忆及书写,为了减小位数,通常将二进制数用十六进制表示。2 进制,用两个阿拉伯数字:0、1;8 进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;10 进制,用十个阿拉伯数字:0 到 9;1

14、6 进制,用十六个阿拉伯数字等等,阿拉伯人或说是印度人,只发明了 10 个数字啊? 16 进制就是逢 16 进 1,但我们只有 0-9 这十个数字,所以我们用A,B,C,D,E,F 这五个字母来分别表示 10,11,12,13,14,15。字母不区分大小写。十六进制数的第 0 位的权值为 16 的 0 次方,第 1 位的权值为 16 的 1 次方,第 2 位的权值为 16 的 2 次方。所以,在第 N(N 从 0 开始)位上,如果是是数 X (X 大于等于 0,并且 X 小于等于 15,即:F)表示的大小为 X * 16 的 N 次方。假设有一个十六进数 2AF5, 那么如何换算成 10 进制

15、呢?用竖式计算: 第 0 位: 5 * 16 0 = 5第 1 位: F * 16 1 = 240第 2 位: A * 16 2 = 2560第 3 位: 2 * 16 3 = 8192 -10997 直接计算就是:5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997(别忘了,在上面的计算中,A 表示 10,而 F 表示 15)现在可以看出,所有进制换算成 10 进制,关键在于各自的权值不同。假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:1234 = 1 * 10 3 + 2 * 102 + 3 * 101 + 4 *

16、 100十六进制是计算机系统中除二进制数之外使用较多的进制,其计数法的特点为:有 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 等共十六个数码,其分别对应于十进制数的 015;十六进制数的加减法的进借位规则为:借一当十六,逢十六进一。十六进制数的位权一般表示为:16 n-1。其中 16 是十六进制的进位基数,n 表示相对小数点的位置。在书写时,用加注 16 或 H 的方式表示十六进制数,例如:(8FA.5) 16或8FA.5H。例如:写出(8FA.5) 16的十进制数表达式。(8FA.5) 16=8162+15161+10160+516-1=(2298.3125)10四、八进

17、制数八进制计数法的特点是:有八个不同的计算符号 0、1、2、3、4、5、6、7,这八个符号称为数码。采用逢八进一的原则。对应于十进制数 0、1、2、3、4、5、6、7、8,八进制数分别记作 0、1、2、3、4、5、6、7、8、10。八进制数第 0 位的权值为 8 的 0 次方,第 1 位权值为 8 的 1 次方,第 2 位权值为 8的 2 次方所以,设有一个八进制数:1507,转换为十进制为:用竖式表示: 第 0 位 7 * 8 0 = 7第 1 位 0 * 8 1 = 0 第 2 位 5 * 8 2 = 320 第 3 位 1 * 8 3 = 512 -839同样,我们也可以用横式直接计算:

18、7 * 8 0 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数 1507 转换成十进制数为 839下表列出了十进制 016 对应的二进制数和十六进制数。十进制数 二进制数 十六进制数0 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 910 1010 A11 1011 B12 1100 C13 1101 D14 1110 E15 1111 F16 10000 10五、十进制数转化为非十进制数十进制转换数转换为非十进制数时,可将其分为整数部分和小数部分分别

19、进行转换,最后将结果合并为目的数。 整数部分的转换整数部分的转换是采用除基取余法。所谓除基取余法就是用欲转换的数据的基数去除十进制数的整数部分,第一次除取得的余数为目的数的最低位,把得到的商再除以该基数,所得余数为目的数的次低位,依此类推,继续上面的过程,直到商为 0 时,所得余数为目的数的最高位。1、十进制转换成二进制例 1、:将十进制的 168 转换为二进制 (10101000) 2分析:第一步,将 168 除以 2,商 84,余数为 0 第二步,将商 84 除以 2,商 42 余数为 0 第三步,将商 42 除以 2,商 21 余数为 0第四步,将商 21 除以 2,商 10 余数为 1

20、第五步,将商 10 除以 2,商 5 余数为 0 第六步,将商 5 除以 2,商 2 余数为 1第七步,将商 2 除以 2,商 1 余数为 0 第八步,将商 1 除以 2,商 0 余数为 1 第九步,读数,因为最后一位是经过多次除以 2 才得到的,因此它是最高位,读数字从最后的余数向前读,即 10101000。例 2、6 转换成二进制,结果是 110。把上面的一段改成用表格来表示,则为:被除数 计算过程 商 余数6 6/2 3 03 3/2 1 11 1/2 0 1(在计算机中,用 / 来表示) 如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除: (图:1)请大

21、家对照图,表,及文字说明,并且自已拿笔计算一遍如何将 6 转换为二进制数。说了半天,我们的转换结果对吗?二进制数 110 是 6 吗?你已经学会如何将二进制数转换成 10 进制数了,所以请现在就计算一下 110 换成 10 进制是否就是 6。练习:例 将十进制 53D 转换为二进制数 110101B。小数部分的转换 小数部分的转换是采用乘基取整法。所谓乘基取整法就是用该小数乘上目的数制的基数,第一次乘得结果的整数部分为目的数的小数部分的最高位,其小数部分再乘上基数,所得结果的整数部分为目的数的次高位,依此类推,继续上述的过程,直到小数部分为 0或达到要求的精度为止。方法:乘 2 取整法,即将小

22、数部分乘以 2,然后取整数部分,剩下的小数部分继续乘以 2,然后取整数部分,剩下的小数部分又乘以 2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是 0 还是 1,取舍,如果是零,舍掉,如果是 1,向入一位。换句话说就是 0 舍 1 入。读数要从前面的整数读到后面的整数,下面举例: 例 1:将 0.125 换算为二进制 (0.001) 2分析:第一步,将 0.125 乘以 2,得 0.25,则整数部分为 0,小数部分为 0.25; 第二步, 将小数部分 0.25 乘以 2,得 0.5,则整数部分为 0,小数部分为 0.5;

23、第三步, 将小数部分 0.5 乘以 2,得 1.0,则整数部分为 1,小数部分为 0.0; 第四步,读数,从第一位读起,读到最后一位,即为 0.001。 例 2,将 0.45 转换为二进制(保留到小数点第四位) 大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是 0.4,那么小数部分继续乘以 2,得 0.8,0.8 又乘以 2 的,到 1.6 这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有 0 和 1 两个,于是就出现 0 舍 1 入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。 那么,

24、我们可以得出结果将 0.45 转换为二进制约等于(0.0111) 2从上面可以看出该数在转换为二进制时,尽管已经过了解 5 次相乘,但其小数位还存在,由于题目要求保留小数后 4 位,故结果为:0.736D0.1011B 或 0.736D0.1100B。上面介绍的方法是十进制转换为为二进制的方法,需要大家注意的是: 1) 十进制转换为二进制,需要分成整数和小数两个部分分别转换。2) 当转换整数时,用的除 2 取余法,而转换小数时候,用的是乘 2 取整法 。3) 注意他们的读数方向。因此,我们从上面的方法,我们可以得出十进制数 168.125 转换为二进制为10101000.001,或者十进制数转

25、换为二进制数约等于 10101000.0111。 二进制转换为十进制不分整数和小数部分:方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。例 将二进制数 101.101 转换为十进制数。 得出结果:(101.101) 2=(5.625)10 1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=4+1+0.5+0.125=(5.625)10大家在做二进制转换成十进制需要注意的是:1) 要知道二进制每位的权值 。2) 要能求出每位的值。2、十进制转换成八进制10 进制数转换成 8 进制的方法,和转换为 2 进制的方法类似,惟一变化:除数由2 变成 8。来看一个例

26、子,如何将十进制数 120 转换成八进制数。 用表格表示:被除数 计算过程 商 余数120 120/8 15 015 15/8 1 71 1/8 0 1120 转换为 8 进制,结果为:170。2、十进制转换成十六进制10 进制数转换成 16 进制的方法,和转换为 2 进制的方法类似,惟一变化:除数由2 变成 16。同样是 120,转换成 16 进制则为:被除数 计算过程 商 余数120 120/16 7 87 7/16 0 7120 转换为 16 进制,结果为:78。作业:请拿笔纸,采用(图:1)的形式,演算上面两个表的过程。六、非十制数转换成十进制数由于任一数都可以按权展开,于是很容易将一

27、个非十进制数转换为相应的十进制数。具体的步骤是:将一个非十进制按权展开成一个多项式,每项是该位的数码与相应的权之积,把多项式按十进制数的规则进行计算机求和,所得结果即是该数的十进制。七、二进制与十六进制数、八进制数的相互转换四位二进制数共有十六种组合,而十六种组合正好与十六进制的十六种组合一致,故每四位二进制数对应于一位十六进制数,因此二进制数与十六进制之间的转换非常简单。三位二进制数共有八种组合,而八种组合正好与八进制的八种组合一致,故每三位二进制数对应于一位八进制数,因此二进制数与八进制之间的转换也非常简单。下面通过四个例子来说其转换:从上面例子可以总结出两种进制转换的方法:二进制转换为十

28、六进制时:只要将二进制数的整数部分自右向左每四位一组,最后不足四位的用零补足;小数部分则自左向右每四位一组,最后不足四位时在右边补零。再把每四位二进制数对应的十六进制数写出来即可。 例 1、:将二进制 11101001.1011 转换为十六进制 得到结果:将二进制 11101001.1011 转换为十六进制为 E9.B 例 2、:将 101011.101 转换为十六进制得到结果:将二进制 101011.101 转换为十六进制为 2B.A十六进制数转换为二进制数的正好与此相反,只要将每位的十六进制数对应的四位二进制写出来即行了。例 1、将十六进制 6E.2 转换为二进制数得到结果:将十六进制 6

29、E.2 转换为二进制为 01101110.0010 即 110110.001二进制转换为八进制时:只要将二进制数的整数部分自右向左每三位一组,最后不足三位的用零补足;小数部分则自左向右每三位一组,最后不足三位时在右边补零。再把每三位二进制数对应的八进制数写出来即可。例 1、将二进制数 101110.101 转换为八进制 得到结果:将 101110.101 转换为八进制为 56.5 例 2、 将二进制数 1101.1 转换为八进制 得到结果:将 1101.1 转换为八进制为 15.4八进制数转换为二进制数的也正好与此相反,只要将每位的八进制数对应的三位二进制写出来即行了。例 1、将八进制数 67.54 转换为二进制得到结果:将八进制数 67.54 转换为二进制 110111.101100,即 110111.1011注意:一般情况先将十进制转化为二进制,有二进制转化为其他进制,如十六进制和八进制。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报