mirror of http://git.sairate.top/sairate/doc.git
2.9 KiB
2.9 KiB
进制转换是计算机科学中的一个基本概念。不同的进制表示系统使用不同的基数(例如,二进制的基数是2,十进制的基数是10)来表示数字。以下是一些常见的进制及其转换方法:
常见进制
- 二进制(Binary):基数为2,只使用数字
0
和1
。 - 八进制(Octal):基数为8,使用数字
0
到7
。 - 十进制(Decimal):基数为10,使用数字
0
到9
。 - 十六进制(Hexadecimal):基数为16,使用数字
0
到9
和字母A
到F
(或a
到f
,代表10到15)。
进制转换方法
1. 二进制转十进制
将二进制数按权展开,从右到左依次乘以 2 的幂,然后求和。
- 例如,二进制
1011
转换为十进制:1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11
2. 十进制转二进制
通过不断将十进制数除以2,记录每次的余数,然后将余数倒序排列得到二进制数。
-
例如,十进制
13
转换为二进制:-
13 ÷ 2 = 6,余数 1
-
6 ÷ 2 = 3,余数 0
-
3 ÷ 2 = 1,余数 1
-
1 ÷ 2 = 0,余数 1
-
结果:
1101
-
3. 二进制转八进制
将二进制数每三位分组(从右到左),然后将每组转换为对应的八进制数。
- 例如,二进制
101011
转换为八进制:- 将二进制数分组为
101
和011
101
= 5,011
= 3- 结果:
53
- 将二进制数分组为
4. 八进制转二进制
将每个八进制数转换为三位二进制数,拼接得到最终的二进制数。
- 例如,八进制
53
转换为二进制:5
=101
,3
=011
- 结果:
101011
5. 十进制转十六进制
通过不断将十进制数除以16,记录每次的余数(如果余数大于9,转换为对应的字母),然后将余数倒序排列得到十六进制数。
- 例如,十进制
255
转换为十六进制:- 255 ÷ 16 = 15,余数 15(对应
F
) - 15 ÷ 16 = 0,余数 15(对应
F
) - 结果:
FF
- 255 ÷ 16 = 15,余数 15(对应
6. 十六进制转十进制
将十六进制数按权展开,从右到左依次乘以16的幂,然后求和。
- 例如,十六进制
1A3
转换为十进制:1 \times 16^2 + 10 \times 16^1 + 3 \times 16^0 = 256 + 160 + 3 = 419
Python 实现进制转换
Python 提供了一些内置函数来轻松进行进制转换。
- 十进制转其他进制:
# 十进制转二进制
print(bin(13)) # 输出:0b1101
# 十进制转八进制
print(oct(13)) # 输出:0o15
# 十进制转十六进制
print(hex(255)) # 输出:0xff
- 其他进制转十进制:
# 二进制转十进制
print(int('1101', 2)) # 输出:13
# 八进制转十进制
print(int('15', 8)) # 输出:13
# 十六进制转十进制
print(int('ff', 16)) # 输出:255
通过理解这些转换方法,可以更好地掌握不同进制之间的关系和计算方法。