0基础学python-6:各进制之间的转换

目录

前言

1.数学实现

2进制转其他进制:

8进制转其他进制:

10进制转其他进制:

16进制转其他进制:

2.代码实现

2进制转其他进制:

8进制转其他进制:

10进制转其他进制:

16进制转其他进制:

3.傻瓜方法


前言

进制是一种表示数字的方式,主要包括二进制、八进制、十进制和十六进制。

 

一、数学实现

 

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进制。

  • 42
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃什么芹菜卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值