1+ # encoding: utf-8
2+ __author__ = 'zhanghe'
3+
4+
5+ def system_to_decimal (string , hex_format = 2 ):
6+ """
7+ 将二进制[八进制/十六进制]转为十进制
8+ """
9+ if hex_format in [2 , 8 , 16 ]:
10+ return int (string , base = hex_format )
11+
12+
13+ def hex_to_bytes (string ):
14+ """
15+ 十六进制字符串转为字节列表
16+ """
17+ length = len (string )
18+ tmp = []
19+ for i in range (0 , length , 2 ):
20+ tmp .append (int ("0x" + string [i :i + 2 ], base = 16 ))
21+ return bytes (tmp )
22+
23+
24+ def test ():
25+ """
26+ 转换测试
27+ """
28+ print hex_to_bytes ('01ff' ) # [1, 255]
29+ # 二进制转十进制
30+ print system_to_decimal ('10' ) # 2
31+ # 八进制转十进制
32+ print system_to_decimal ('10' , 8 ) # 8
33+ # 十六进制转十进制
34+ print system_to_decimal ('10' , 16 ) # 16
35+ # 十六进制转十进制
36+ print system_to_decimal ('0x10' , 16 ) # 16
37+ # 整形转字符
38+ print chr (65 ), chr (90 ), chr (97 ), chr (122 ) # A Z a z
39+ # 字符转整形
40+ print ord ('A' ), ord ('Z' ), ord ('a' ), ord ('z' ) # 65 90 97 122
41+ # 十进制转二进制
42+ print bin (0 ), bin (1 ), bin (255 ) # 0b0 0b1 0b11111111
43+ # 十进制转八进制
44+ print bin (0 ), bin (1 ), oct (255 ) # 0b0 0b1 0377
45+ # 十进制转十六进制
46+ print bin (0 ), bin (1 ), hex (255 ) # 0b0 0b1 0xff
47+
48+ if __name__ == "__main__" :
49+ test ()
50+
51+
52+ """
53+ 二进制 binary
54+ 八进制 octal
55+ 十进制 decimal
56+ 十六进制 hex
57+ 字节 byte
58+
59+ 八进制数由前缀0以及后续的0-7的数字来表示。
60+ 十六进制适用于所有整数数据类型,以前缀0x或(0X),后面跟随0-9或小写(或大写)的a-f来表示。
61+ """
0 commit comments