假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
二进制转八进制
(11001.101)(二)
整数部分: 从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:
001=1
011=3
然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式
八进制转二进制
整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:
1—->1—->001
3—->11
然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式
二进制转十六进制
二进制和十六进制的互相转换比较重要 。不过这二者的转换却不用计算,每个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,然后依次是 22 = 4,21=2,20 = 1 。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值 。
下面列出四位二进制数xxxx 所有可能的值(中间略过部分)
仅四位的二进制数
快速计算方法
十进制值
十六进制值
1111
8+4+2+1
15
F
1110
8+4+2+0
14
E
1101
8+4+0+1
13
D
1100
8+4+0+0
12
C
1011
8+0+2+1
11
B
1010
8+0+2+0
10
A
1001
8+0+0+1
9
9
……
0001
0+0+0+1
1
1
0000
0+0+0+0
0
0
二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制 。
如:
二进制数
1111 1101
1010 0101
1001 1011
对应的十六进制数
FD
A5
9B
十六进制转二进制
反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?
先转换F:
看到F,我们需知道它是15(可能你还不熟悉A~F这六个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111 。
接着转换 D:
看到D,知道它是13,13如何用8421凑呢?应该是:8 + 4 + 1,即:1101 。
所以,FD转换为二进制数,为: 1111 1101
由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制 。
比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数 。所以我们可以先除以16,得到16进制数:
被除数
计算过程
商
余数
1234
1234/16
77
2
77
77/16
4
13(D)
4
4/16
0
4
结果16进制为: 0x4D2
然后我们可直接写出0x4D2的二进制形式: 0100 1101 0010 。
其中对映关系为:
0100 — 4
1101 — D
0010 — 2
同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制 。
下面举例一个int类型的二进制数:
01101101 11100101 10101111 00011011
我们按四位一组转换为16进制: 6D E5 AF 1B
再转换为10进制:6*167+D*166+E*165+5*164+A*163+F*162+1*161+B*160=1,843,769,115
二进制,八进制,十进制,十六进制有什么作用呢?
【10进制转8进制算法 2进制16进制之间的转换】 这些进制都有什么作用呢?在我们生活中有很多电器都用到了数字电路,比如电脑就是用的这些进制进行运算才使得计算机有这么多的功能
- 如何退回别人的转账 如何退回微信红包
- 蒙迪欧助力转向油多久换一次
- 佛教说为什么会生弱智,今世是个傻子,轮回转世以后会不会成为天才啊?
- 发动机一般转速是多少才算正常 车速120发动机转速多少正常
- 有心事的睡不着的婉转的句子
- 麦玲玲2022年生肖运势视频,怎样才能转财运
- 电动车转速把能通用吗
- 微博怎么看谁转发了我的微博
- 对老婆好的日柱男命,[转载]八字日柱看什么男人疼老婆
- 输入出生日期查生辰八字,出生日期转换生辰八字对照表
