首发于 Python爬虫
Python字符与进制转换

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))