进制转化

class DateTransfer():
# ==================================================================================================================
# 二进制、十进制、十六进制、数字、字符串相互转换
# 将16进制字符串转化为对应的数字
def str2hex(self, s):
data = 0
su = s.upper()
for _ in su:
data = data << 4
if _ <= '9':
data = data + ord(_) - ord('0')
elif 'A' <= _ <= 'G':
data = data + ord(_) - ord('A') + 10
return data
# 将2进制字符串转化为对应的数字
def str2bin(self, s):
data = 0
for _ in s:
data = data << 1
data = data + ord(_) - ord('0')
return data
# 将十六进制字符串转化为二进制字符串
def hex2bin(self, s):
data = self.str2hex(s)
strbin = bin(data)[2:]
if len(strbin) == 8:
pass
else:
strbin = '0' * (8 - len(strbin)) + strbin
return strbin
# 将二进制字符串转化未十六进制字符串
def bin2hex(self, b):
orgbin = '0b' + b
binstr = eval(orgbin)
hexstr = str(hex(binstr))[2:]
return hexstr
posted @ 2022-03-04 17:32  王大老爷  阅读(43)  评论(0编辑  收藏  举报