前言:考虑通法(即在C、Java当中都能用的方法),也考虑Python当中的特殊解法
十六进制转二进制
1. 16->10->2
a = input('请输入一个十六进制数:')
b = int(a,16) #这里的b已经是十进制数字了
print(b)
d = format(b,'b') #把b转换成二进制数字,d的类型是str
print(d)
if len(d) % 4 != 0:
counter = 4 - len(d)%4
for i in range(counter):
print(0, end='')
print(d)
else:
print(d)
#这里给把十六进制补成四位四位那样子
附录:
1.format用法(这个应该是python特有的:)python格式化输出之format用法 - 知乎 (zhihu.com)
Python format 格式化函数 | 菜鸟教程 (runoob.com)
最基础的format用法就是:
format()函数的一般语法为:
format(value, format_spec)
- value:要进行格式化的值。
- format_spec:格式化的规范。它可以是一个字符串,指定了输出的格式,也可以是一个格式化规范的对象(如数字或日期格式)。
format_spec参数可以是多种格式,例如:
- 'd':将整数格式化为十进制表示。
- 'f':将浮点数格式化为小数表示。
- 's':将对象格式化为字符串表示。
- 'b':将整数格式化为二进制表示。
- 'x':将整数格式化为十六进制表示(小写字母)。
- 'X':将整数格式化为十六进制表示(大写字母)。
通过在format()函数中指定不同的format_spec参数,可以按照不同的格式将值进行格式化,并返回对应的字符串表示。
2.int函数:Python int() 函数 | 菜鸟教程 (runoob.com)
2.用字典
(嘛,其实我一开始就想用这个写的,但是感觉不如第一种方便
a = input('请输入一个十六进制数:')
dic = {
'0': '0000','1': '0001','2': '0010','3': '0011','4': '0100',
'5': '0101','6': '0110','7': '0111','8': '1000','9': '1001',
'a': '1010','b': '1011','c': '1100','d': '1101','e': '1110',
'f': '1111',
}
a.lower()
if a[0]=='0' and a[1]=='x':
a = a[2:]
print(a)
b = str()
for i in range(len(a)):
b = b+dic[a[i]]
print(b) #b还是str类型的
十六进制转十进制
a = input('请输入一个十六进制数:')
b = int(a,16) #这里的b已经是十进制数字了
十六进制转八进制
16->10->8
十进制转二进制
#python屏幕输入为字符串,将其转化为整数再操作
number = int(input())
binnum = bin(number)
print(binnum)
注意:这里的二进制是以'0b'开头的,而且返回的是str类型
十进制转八进制
a = int(input("请输入一个十进制数字:"))
b = str()
while a!=0:
yushu = int(a%8)
b = str(yushu)+b
a = a//8
print(b)
十进制转十六进制
剩下的函数都略去,其实这里其实有一篇博主写的挺好的:
Python实现 —— 十进制转二进制、八进制、 十六进制_八进制转换为十进制python_chl183的博客-CSDN博客
(自己实现一下除r取余法,就拿八进制为例吧
八进制转二进制
8->10->2
八进制转十进制
a = input('请输入一个八进制数:')
b = int(a,8) #这里的b已经是十进制数字了
八进制转十六进制
8->10->16
二进制转十进制
a = input('请输入一个二进制数:')
b = int(a,2) #这里的b已经是十进制数字了
二进制转八进制
2->10->8
二进制转十六进制
2->10->16