进制之间的转换
二进制
计算机的信息都是以二进制数存储的。计算机内部一律采用二进制的原因:
- 电压只有两个状态:高和低;用数字表示就是 1 和 0。
- 二进制的逻辑运算简单。逻辑只有 “0” 和 “1”,即真和假。
- 二进制的运算法则简单。
数制有六十进制、十六进制、十进制、八进制、二进制等。平常用得最多的是十进制,计算机内部使用的是二进制,编程还要用到八进制和十六进制。
基数与位权
基数就是进制中能表示数字的符号的个数。十进制有 0~9 共是个数字符号,所以基数是 10。二进制的基数是 2。某种进制允许使用的数字符号有多少个,其基数就是多少。

位权就是以基数为底,以数字所在的序号为指数的整数幂。十进制 12 的基数是 10,从右到左(个位到十位)的数字符号的序号依次是 0 和 1。那么,数字符号 2 的位权是 100;数字 1 的位权是 101。
十进制 12 又可以这样表示:1×101+2×100=12。
二进制 1.1:
十进制 886.88:
R进制转为十进制
R 进制转换为十进制要按位权展开求和。
(1)二进制数 1001 转换为十进制数
(2)八进制数 35 转换为十进制数
(3)十六进制数 32CF 转换为十进制数
十进制转为R进制
整数转换
十进制整数化为 R 进制数:除 R 取余。
(1)把 237.8125 转换为二进制数。

从低往上依次填写的余数就是二进制的整数部分得到 11101101。
(2)把 58506.8125 转换为八进制数。

从低往上依次填写的余数就是八进制的整数部分得到 162212。
小数转换
十进制纯小数化为 R 进制数:乘 R 取整法,得 R 进制纯小数。
(1)把 0.8125 转换为二进制数。
从高往下依次填写的整数就是二进制的小数部分得到 0.1101。
(2)把 0.8125 转换为八进制数。
从高往下依次填写的整数就是二进制的小数部分得到 0.64。
二进制转八进制
二进制的基数是 2,八进制的基数是 8,由于 8 是 2 的整数次幂,即
将二进制数 111111011.0100001 转换为八进制数,首先以小数点为界限,以3位数为一组进行划分:

整数部分001
原本是1
,由于是最后剩下的,所以用0补齐;小数部分100
原本也是1
,且也是最后剩下的,所以用0补齐。
将每组对于的八进制数写出来:

所以最后的结果是:1111111011.0100001=1773.204。
八进制转二进制
八进制转换为二进制就非常的简单了,只需要把八进制的每一位数字转换成3位二进制数即可,注意,如果二进制只有两位或者两位以下时,用0补齐这组数的最前面即可。
将八进制数 72.531 转换为二进制数:

所以最后的结果是:
二进制转十六进制
二进制的基数是 2,十六进制的基数是 16,由于 16 是 2 的整数次幂,即
将 111101010011.10111 转换为十六进制数,首先以小数点为界限,以4位数为一组划分,再依次对其进行转换:

所以,最终结果为
十六进制转二进制
十六进制转换为二进制,直接将十六进制的每一位数字对应的二进制数写出来即可:

所以,最终结果为
八进制与十六进制互转
八进制与十六进制之间的转换,最简单的方法就是借助于二进制来实现,先将八进制转换为二进制,然后二进制再转换为十六进制。同样的,十六进制转换为八进制也是借助于二进制实现。
进制对照表
二进制 | 八进制 | 十进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
10 | 2 | 2 | 2 |
11 | 3 | 3 | 3 |
100 | 4 | 4 | 4 |
101 | 5 | 5 | 5 |
110 | 6 | 6 | 6 |
111 | 7 | 7 | 7 |
1000 | 10 | 8 | 8 |
1001 | 11 | 9 | 9 |
1010 | 12 | 10 | A |
1011 | 13 | 11 | B |
1100 | 14 | 12 | C |
1101 | 15 | 13 | D |
1110 | 16 | 14 | E |
1111 | 17 | 15 | F |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步