Skip to content

Commit c175a9b

Browse files
committed
新增进制转换工具
1 parent 35e7ef1 commit c175a9b

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

tools/convert.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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

Comments
 (0)