python实现二,八,十六进制与十进制之间的转换

本文详细介绍了如何使用Python进行不同进制之间的转换,包括从八进制、十六进制到十进制,以及从十进制到二进制、八进制和十六进制的转换方法。同时,提供了一个示例程序,用于解析和计算包含多种进制数的复杂数学表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于不同进制的转化:

1、把不同进制转化为十进制

  • int(‘02245’, 8) # 1189
    • 第一个参数是需要转成十进制的字符串
    • 第二个参数是第一个参数的类型,比如是2、8或者16进制
  • 例如, 把16进制的0xD32C转为十进制
    • int(‘0xD32C’,16) # 54060
  • 把2进制的0b10转为十进制
    int(‘0b10’, 2) # 2

2、把不同进制转化为二进制

  • hex(10) #把10进制转化为16进制 0xA
  • oct(10) #把10进制转化为8进制 0o12
  • bin(10) #把10进制转化为2进制 0b1010

例题:计算表达式的值,要求如下:
1.各个表达式不一定都是十进制数字,也有八进制(0开头)、十六进制(0x开头的)
2.表达式中运算符包括+,-运算。
输入:02245+654+0xD32C
输出:-52217

 首先这道题我们首先想到的是把不同的进制同一。这里输入的公示可以切片获得字符串。对于字符串可以把不同进制的数字变成十进制。实现步骤:
1、切片把三种数据拿出来
2、把数据类型转换统一
3、遍历计算字符串判断加减操作
4、根据遍历情况进行操作:
import re
def fun(eq):
	ret = re.split('[+,-]',eq)
	li = [ ]
	for e in ret:
		if e[0] == '0':
			if e[1] == 'x':
				e = int(e, 16)
			else:
				e = int(e, 8)
		else:
			e = int(e)
		li.append(e)
	j = 0
	val = li[j]
	for i in range(len(eq)-1):
		if eq[i] == '+':
			val = val + li[j+1]
		if eq[i] == '-'
			val = val - li[j+1]
	 return val

eq = input('输入')
print(fun(eq))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值