Python字符与进制转换
Python字符与进制转换
0b / 0B --> 二进制字符前缀
0o / 0O --> 八进制字符前缀
0x / 0X --> 十六进制字符前缀
ascii(object)
就像函数 repr(),返回一个对象可打印的字符串,但是 repr() 返回的字符串中非 ASCII 编码的字符,会使用 \x、\u 和 \U 来转义。生成的字符串和 Python 2 的 repr() 返回的结果相似。
1、二进制转八进制
数字0和英文b:0b10110011111为二进制数据
oct函数将一个整数转变为一个前缀为“0o”的八进制字符串
x = "0b10110011111"
oct(int(x, 2))
# 结果:
"0o2637"
2、二进制数据转十进制
int函数用于数字或字符转换为整型数据,第二个参数可选为2,8,16,可以将0b / 0B,0o / 0O或0x / 0X作为前缀的字符解释为整型数据。
x = '0b10110011111'
int(x, 2)
1439
3、二进制转十六进制
hex函数将整数转换为以“0x”为前缀的小写十六进制字符串
x = '0b10110011111'
hex(int(x, 2))
'0x59f'
4、八进制转二进制
bin函数将一个整数转变为一个前缀为“0b”的二进制字符串
x = '0o2637'
bin(int(x, 8))
'0b10110011111'
5、八进制转十进制
x = '0o2637'
int(x, 8)
1439
6、八进制转十六进制
x = '0o2637'
hex(int(x, 8))
'0x59f'
7、十进制转二进制
x = '1439'
bin(int(x, 10))
'0b10110011111'
8、十进制转八进制
x = '1439'
oct(int(x, 10))
'0o2637'
9、十进制转十六进制
x = '1439'
hex(int(x, 10))
'0x59f'
10、十六进制转二进制
x = '0x59f'
bin(int(x, 16))
'0b10110011111'
11、十六进制转八进制
x = '0x59f'
oct(int(x, 16))
'0o2637'
12、十六进制转十进制
x = '0x59f'
int(x, 16)
eval("0x" + a[2:])
1439
13、字符串转十进制
ord函数对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。例如 ord('a') 返回整数 97, ord('€') (欧元符号)返回 8364
e = '一'
ord(e)
19968
14、字符串转二进制
e = '一'
bin(ord(e))
'0b100111000000000'
15、字符串转八进制
e = '一'
oct(ord(e))
'0o47000'
16、字符串转十六进制
e = '一'
hex(ord(e))
'0x4e00'
# 转为\u或者uni编码
hex(ord(e)).upper().replace('0X', r'\u')
'\\u4E00'
17、十进制转字符串
chr(i)函数返回 Unicode 码位为整数 i 的字符的字符串格式。例如,chr(97) 返回字符串 'a',chr(8364) 返回字符串 '€'
x = 19968
chr(x)
'一'
18、二进制转字符串
x = '0b100111000000000'
chr(int(x, 2))
'一'
19、八进制转字符串
x = '0o47000'
chr(int(x, 8))