主要记录python中的各进制转换,以及高低位互换代码
一.进制转换
先说一下格式符(字符串格式化输出):格式符为真实值预留位置,并控制显示的格式。
格式符可以包含有一个类型码,用以控制显示的类型,如下
| 格式符号 | 含义 |
|---|---|
| %s | 字符串 (采用str()的显示) |
| %r | 字符串 (采用repr()的显示) |
| %c | 单个字符 |
| %b | 二进制整数 |
| %d | 十进制整数 |
| %o | 八进制整数 |
| %x | 十六进制整数 |
| %e | 指数 (基底写为e) |
| %E | 指数 (基底写为E) |
| %f | 浮点数 |
| %F | 浮点数,与上相同 |
| %g | 指数(e)或浮点数 (根据显示长度) |
| %G | 指数(E)或浮点数 (根据显示长度) |
| %% | %% |
1.将10进制转16
10进制转16进制一般有以下方法:
用hex()函数
a = 11 #读取到10进制
print(type(a))
b = hex(a) #转为16进制(为str)
print(b) #b=0x10
‘’‘此时得到的10进制带有格式符,如想去掉格式符,可继续运行以下代码’‘’
len = len(b)
if len ==6: #将'0x10'变为'0010' '0x10f0'变为'10f0 '0xf10'变为'0f10' '0xffff'变为'ffff'
c = ('%06x' % int(b, 16)) # 得到'00ffff'
print(c)
print(type(c))
d = c[2:6]
print(d)
print(type(d))
if len ==5:
c = ('%05x' % int(b, 16))
print(c)
print(type(c))
d = c[1:5]
print(d)
if len ==4:
c = ('%04x' % int(b, 16))
print(c)
print(type(c))
d = c[0:4]
print(d)
if len ==3:
c = ('%03x' % int(b, 16))
print(c)
print(type(c))
d = c[0:3]
print(d)
#输出00b
使用’{:x}'.format(a) 格式化(这种转换方法不会有格式符)
a = 11
b = '{:x}'.format(a)
print(b)
#输出b
如需保留位,使用{:032x}'.format(a) 格式化
a = 11
b = '{:032x}'.format(a)
print(b)
#输出0000000000000000000000000000000b
2.将10进制转2
使用bin()函数
a = 11
b = bin(a)
print(b)
#输出0b1011
使用’{:b}'.format(a) 格式化(这种转换方法不会有格式符)
a = 11
b = '{:b}'.format(a)
print(b)
#输出1011
有时需要指令输出位数,并高位补零(去掉0即高位不补零)
a = 3
b = '{:03b}'.format(a)
print(b)
#输出011
3.将各进制转10
使用int()函数,int() 方法的语法为:
x – 字符串或数字。
base – 进制数,默认十进制
class int(x, base=10)
以下展示了使用 int() 方法的实例:
>>>int() # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)
10
>>> int('10',8)
8
二.高低位转换
16进制高低位互换 后转10进制
h = '0011'
list_1 = [] #建立空列表
for i in range(0, len(h), 2):
list_1 .append(h[i:i + 2]) #获得['00','11']
list_1 .reverse() #获得['11','00']
list_1_str= int(''.join(da), 16) #转换为10进制
print(list_1_str)
本文介绍Python中不同进制之间的转换方法,包括十进制与十六进制、二进制之间的转换,以及如何使用格式化输出去除或保留特定格式。此外,还介绍了如何实现十六进制数的高低位互换。

426

被折叠的 条评论
为什么被折叠?



