《2022年进制、进制和进制的相互转换[归 .pdf》由会员分享,可在线阅读,更多相关《2022年进制、进制和进制的相互转换[归 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、整数时十进制与二进制相互转换:二进制 的 1101 转化成十 进制1101( 2) =1*20+0*21+1*22+1*23=1+0+4+8=13 转化成十 进制要从右到左用二进制的每个数去乘以2 的相应次方,不过次方要从0 开始。相反,用十进制的 13 除以 2,每除一 下将余数就记在旁边, 最 后按余数从下向上排列就可得到 1101。 由二进制 数转换成十进制数 的基本 做法是 ,把二 进制数首 先写成 加权系 数展开 式,然 后按十 进制加法规则求和。这种做法称为“按权相加”法。2 的 0 次方是 1 2 的 1 次方 是 2 2 的 2 次方 是 4 2 的 3 次方 是 8 2 的
2、4 次方 是 16 2 的 5 次方 是 32 2 的 6 次方 是 64 2 的 7 次方 是 128 2 的 8 次方 是 256 2 的 9 次方 是 512 2 的 10 次方是 1024 2 的 11 次方是 2048 2 的 12 次方是 4096 2 的 13 次方是 8192 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 2 的 14 次方是 16384 2 的 15 次方是 32768 有小数点的 十进制与二
3、进制之间的转换:十进 制数转 换为二 进制数时 ,由于 整数和 小数的 转换方 法不同 ,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。例如 19.95 转 2 进制分为 两个步骤:(1) 小数点前:19/2=9 余 1 9/2=4 余 1 4/2=2 余 0 2/2=1 余 0 1/2=0 余 1 由下往上 取余数10011 (2) 小数点后0.95*2 = 1.9 取整 1 ( 1.9-1) *2 = 1.8 取整 1 ( 1.8-1) *2 = 1.6 取整 1 ( 1.6-1) *2 = 1.2 取整 1 ( 1.2-1) *2 = 0.4 取整 0 ( 0.4-0) *
4、2 = 0.8 取整 0 ( 0.8-0) *2 = 1.6 取整 1 ( 1.6-1) *2 = 1.2 取整 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 假设小数 精度为 8 位,从上往下去则小数点后为0.11110011 故 19.95 转化为 二进制为10011.11110011 整数时八进制数转换为十进制数:八进制就是逢 8 进 1。八进制数采用07 这八数来表达一个数。八进制数第 0 位的权值为 8 的 0
5、次方,第 1 位权值为 8 的 1 次方,第 2 位权值为 8 的 2 次方,以此类推。所以,设有一个八进制数:1507,转换为十进制为:用竖式表示:1507 换算成十进制。第 0 位 7 * 80 = 7 第 1 位 0 * 81 = 0 第 2 位 5 * 82 = 320 第 3 位 1 * 83 = 512 相加即为 839。同样,我们也可以用横式直接计算:7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数1507 转换成十进制数为839 整数时十六进制数转换成十进制数:2 进制,用两个阿拉伯数字:0、1;8 进制,用八个阿拉伯数字:0、1
6、、2、3、4、5、6、7;10 进制,用十个阿拉伯数字:0 到 9;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 16 进制, 16 进制就是逢 16 进 1, 但我们只有 09 这十个数字,所以我们用 A,B,C,D,E,F 这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。十六进制数的第 0 位的权值为 16 的 0 次方,第 1 位的权值为 16 的 1 次方,第 2 位的权值为 16 的 2 次
7、方,以此类推。所以,在第 N(N 从 0 开始)位上,如果是是数X ( X 大于等于 0,并且 X小于等于15,即:F)表示的大小为X * 16 的 N 次方。假设有一个十六进数2AF5, 那么如何换算成10 进制呢?用竖式计算:2AF5 换算成 10进制 : 第 0 位:5 * 160 = 5 第 1 位:F * 161 = 240 第 2 位:A * 162 = 2560 第 3 位:2 * 163 = 8192 相加即为 10997 直接计算就是 5 * 160+ F * 161 + A * 162 +2 * 163 = 10997 现在可以看出,所有进制换算成10 进制,关键在于各自的
8、权值不同。十六进制数的表达方法:如果不使用特殊的书写形式, 16 进制数也会和 10 进制相混。随便一个数:9876,就看不出它是 16 进制或 10 进制。 C,C+规定, 16 进制数必须以0 x 开头。比如 0 x1表示一个 16 进制数。而 1 则表示一个十进制。 另外如:0 xff,0 xFF,0X102A,等等。其中的 x 也也不区分大小写。 (注意: 0 x 中的 0 是数字 0,而不是字母 O) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 -
9、- - - - - - - - 以下是一些用法示例int a = 0 x100F; int b = 0 x70 + a; 至此,我们学完了所有进制:10 进制, 8 进制, 16 进制数的表达方式。最后一点很重要, C/C+中,10 进制数有正负之分,比如12 表示正 12,而-12 表示负 12, ; 但 8 进制和 16进制只能用达无符号的正整数, 如果你在代码中里:-078,或者写: -0 xF2, C 和 C+并不把它当成一个负数。10 进制数转换成 8 进制的方法,和转换为2 进制的方法类似,惟一变化:除数由 2 变成 8。十六进制数与二进制的相互转换:二进制和十六进制的互相转换比较
10、重要。不过这二者的转换却不用计算,每个 C,C+程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。我们也一样,只要学完这一小节,就能做到。首先我们来看一个二进制数:1111,它是多少呢?你可能还要这样计算: 1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。然而,由于 1111才 4 位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,: 8、4、2、1。即,最高位的权值为23 8,然后依次是224,212, 20 1。记住 8421,对于任意一个4 位的二进制数,我们都可以很快
11、算出它对应的 10 进制值。二进制数要转换为十六进制,就是以4 位一段,分别转换为十六进制。如(上行为二制数,下面为对应的十六进制):名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 1111 1101 , 1010 0101 , 1001 1011 F D ,A 5 ,9 B 反过来,当我们看到FD 时,如何迅速将它转换为二进制数呢?先转换 F:看到 F,我们需知道它是15(可能你还不熟悉AF 这五个数),然后15 如何用 84
12、21 凑呢?应该是 8 + 4 + 2 + 1,所以四位全为1 :1111。接着转换D:看到 D,知道它是 13,13 如何用 8421凑呢?应该是: 8 + 2 + 1,即:1011。所以, FD 转换为二进制数,为:1111 1011 由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成 2 进制数时,也可以先转换成16 进制,然后再转换成2 进制。同样,如果一个二进制数很长,我们需要将它转换成10 进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16 进制,然后再转换为10 进制。下面举例一个 int 类型的二进制数:01101101 11100101 10101111 00011011 我们按四位一组转换为16 进制为6D E5 AF 1B。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -