目录
前言
进制是一种表示数字的方式,主要包括二进制、八进制、十进制和十六进制。
一、数学实现
2进制转其他进制:
2转8进制:将1,0按位数分组,每3位为一组,不足3位的在前面补0。将每一组转化为对应的8进制数,即可得到结果
2转10进制:将2进制的每一位数字与对应的权值相乘,再求和。权值从右到左,依次为2^0, 2^1, 2^2...。
2转16进制:将1,0按位数分组,每4位为一组,不足4位的在前面补0。将每一组转化为对应的16进制数,即可得到结果。
8进制转其他进制:
8转2进制:将8的每一位数字转化为对应的3位二进制数。
8转10进制:将8的每一位数字与对应的权值相乘,再求和。权值从右到左,依次为8^0, 8^1, 8^2...。
8转16进制:先将8转为2进制,再将2进制转为16进制。
10进制转其他进制:
10转2进制:将10除以2,得到的商继续除以2,一直进行除法运算,直到商为0为止。将每一步的余数倒序排列即可。
10转8进制:将10除以8,得到的商继续除以8,一直进行除法运算,直到商为0为止。将每一步的余数倒序排列即可。
10转16进制:将10除以16,得到的商继续除以16,一直进行除法运算,直到商为0为止。将每一步的余数倒序排列,并将10以上的余数转化为字母(A代表10,B代表11,依次类推,大小写无影响)即可。
16进制转其他进制:
16转2进制:将16的每一位数字转化为对应的4位2进制数。
16转8进制:先将16转为2进制,再将2进制转为8进制。
16转10进制:将16的每一位数字与对应的权值相乘,再求和。权值从右到左,依次为16^0, 16^1, 16^2...。将A以上的字母转化为对应的数字即可。
二、代码实现
在python中各进制的表示如下
2进制:0b或0B开头 0b10110100
8进制:0o或0O开头 0o264
16进制:0x或0X开头 0xb4
10进制:180
计算机会以二进制的形式读取数据并进行处理,然后默认以十进制的形式输出
2进制转其他进制:
a = 0b10101010
b = 11111111
print(oct(a),oct(b)) #otc()将参数转换成8进制
print(a,b)
print(hex(a),hex(b)) #hex()将参数转换成16进制
a为2进制数,b为十进制数
输出:
0o252 0o52305307
170 11111111
0xaa 0xa98ac7
其他进制转换成8进制时需要使用oct()函数,转换成16进制时需要使用hex()函数,而转换成十进制时则不需要使用函数,因为计算机会默认以十进制的形式输出。
8进制转其他进制:
c = 0o64
d = 640
print(bin(c),bin(d)) #bin()将参数转化成2进制
print(c,d)
print(hex(c),hex(d)) #hex()将参数转化成16进制
c为8进制数,d为十进制数
输出:
0b110100 0b1010000000
52 640
0x34 0x280
其他进制转换成2进制时需要使用bin()函数
10进制转其他进制:
e = 1234
print(bin(e)) #bin()将参数转换成2进制
print(oct(e)) #otc()将参数转换成8进制
print(hex(e)) #hex()将参数转换成16进制
输出:
0b10011010010
0o2322
0x4d2
16进制转其他进制:
f = 0xaaab
g = 1234
print(bin(f),bin(g)) #bin()将参数转化成2进制
print(oct(f),oct(g)) #oct()将参数转化成8进制
print(f,g)
输出:
0b1010101010101011 0b10011010010
0o125253 0o2322
43691 1234
三、傻瓜方法
在电脑的搜索栏搜索计算器
打开计算器,在左上角将模式调为程序员模式
然后你就会得到一个好用的进制转换工具
从上到下依次显示的是16进制,10进制,8进制和2进制。