2进制、10进制和16进制的相互转换.doc

上传人:scccc 文档编号:12437251 上传时间:2021-12-03 格式:DOC 页数:6 大小:87.50KB
返回 下载 相关 举报
2进制、10进制和16进制的相互转换.doc_第1页
第1页 / 共6页
2进制、10进制和16进制的相互转换.doc_第2页
第2页 / 共6页
2进制、10进制和16进制的相互转换.doc_第3页
第3页 / 共6页
2进制、10进制和16进制的相互转换.doc_第4页
第4页 / 共6页
2进制、10进制和16进制的相互转换.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《2进制、10进制和16进制的相互转换.doc》由会员分享,可在线阅读,更多相关《2进制、10进制和16进制的相互转换.doc(6页珍藏版)》请在三一文库上搜索。

1、整数时十进制与二进制相互转换:二进制的1101转化成十进制1101 (2) =1*2A0+0*2A1+1*2A2+1*2A3=1+0+4+8=13转化成十进制要从右到左用二进制的每个数去乘以2的相应次方,不过次方要从0开始。相反,用十进 制的13除以2,每除一下将余数就记在 旁边,最后按余数从下向上排列就可得到1101。由二进制 数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加 法规则求和。 这种做法称为“按权相加”法。2的0次方是12的1次方是22的2次方是42的3次方是82的4次方是162的5次方是322的6次方是642的7次方是1282的8次方是2562的9

2、次方是5122的10次方是10242的11次方是20482的12次方是40962的13次方是81922的14次方是163842的15次方是32768有小数点的 十进制与二进制之间的转换:十进制数转换为二 进制数时,由于 整数和 小数的转换方 法不同,所以 先将十进制数 的整数部分和小数部分分别转换 后,再加以合并。 例如19.95 转2进制分为两个步骤:小数点前:19/2=9 余 19/2=4 余 14/2=2 余 02/2=1 余 01/2=0 余 1由下往上 取余数10011(2)小数点后0.95*2= 1.9 取整 1(1.9-1)*2 = 1.8 取整 1(1.8-1)*2 = 1.6

3、 取整 1(1.6-1)*2 = 1.2 取整 1(1.2-1)*2 = 0.4 取整 0(0.4-0)*2 = 0.8 取整 0(0.8-0)*2 = 1.6 取整 1(1.6-1)*2 = 1.2 取整 1假设小数 精度为8位,从上往下去则小数点后为0.11110011故19.95转化为 二进制为 10011.11110011整数时八进制数转换为十进制数:八进制就是逢8进1 o八进制数采用07这八数来表达一个数。八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权 值为8的2次方,以此类推。所以,设有一个八进制数:1507,转换为十进制为:用竖式表示:1507换算成十进制。第

4、 0 位 7 * 80 = 7第 1 位 0 * 81 = 0第 2 位 5 * 82 = 320第 3 位 1 * 83 = 512相加即为839o同样,我们也可以用横式直接计算:0123 =7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839结果是,八进制数1507转换成十进制数为839整数时十六进制数转换成十进制数:2进制,用两个阿拉伯数字:0、1;8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;10进制,用十个阿拉伯数字:0到9;16进制,16进制就是逢 16进 1,但我们只有 09这十个数字,所以我们用 A, B,C,D,E,F 这五个字母来分别表

5、示 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 进制呢? 用竖式计算:2AF5 换算成 10进制:第 0 位: 5 * 160 = 5第 1 位: F * 161 = 240第 2 位: A * 162 = 2560第 3位: 2 * 163 = 8192

6、相加即为 10997直接计算就是 5 * 160+ F * 161 + A * 162 +2 * 163 = 10997 现在可以看出,所有进制换算成 10 进制,关键在于各自的权值不同。 十六进制数的表达方法:如果不使用特殊的书写形式, 1 6进制数也会和 1 0进制相混。随便一个数: 9876, 就看不出它是 16 进制或 10 进制。 C , C+ 规定, 16 进制数必须以 0x 开头 。比 如 0x1 表示一个 16进制数。而 1 则表示一个十进制。 另外如: 0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:Ox中的0是数字0,而不是字母O)以下是一些用法示

7、例int a = 0x100F;int b = 0x70 + a;至此,我们学完了所有进制: 10 进制,8 进制, 16进制数的表达方式。最后 一点很重要,C/C+中,10进制数有正负之分,比如12表示正12,而-12表示 负 12,;但 8进制和 16进制只能用达无符号的正整数 ,如果你在代码中里:-078 , 或者写:-0xF2, C和C+并不把它当成一个负数。10进制数转换成 8进制的方法,和转换为 2进制的方法类似,惟一变化:除 数由 2 变成 8。十六进制数与二进制的相互转换:二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C+程序员都能做到看见二进制数,直

8、接就能转换为十六进制数,反之亦 然。我们也一样,只要学完这一小节,就能做到。首先我们来看一个二进制数: 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,然后依次是 2 = 4, 21 = 2, 20 = 1。记住8421,对于任意一个4位的二进制数,我们都可以很 快算出它对应的 10进制值。二进制数要转换为十六进制,就是

9、以 4 位一段,分别转换为十六进制。如(上行为二制数,下面为对应的十六进制 ):1111 1101 , 1010 0101 , 1001 1011F D , A 5 , 9 B反过来,当我们看到 FD 时,如何迅速将它转换为二进制数呢?先转换 F:看到F,我们需知道它是15 (可能你还不熟悉AF这五个数),然后15如何用 8421 凑呢?应该是 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

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1