python-十六進製制轉二進位制
hex_tuple = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f')
repair_list =
binary_list =
def check_str():
"""檢驗所輸入字串是否為十六進製制字元,且不區分大小寫"""
input_str = input('請輸入待轉十六進製制數:')
frist_deal = input_str.upper()
for s in frist_deal:
if s in hex_tuple:
pass
else:
print('所輸入的內容有誤,驗證失敗!')
return
print('驗證成功,所輸入字串為:%s' % frist_deal)
return frist_deal
def change_chars():
"""將十六進製制中的字元轉化為十進位制的字元"""
hex_list = [str(p) for p in check_str()]
# print(hex_list)
for u in hex_list:
if u == 'a':
i = hex_list.index('a')
hex_list[i] = '10'
elif u == 'b':
i = hex_list.index('b')
hex_list[i] = '11'
elif u == 'c':
i = hex_list.index('c')
hex_list[i] = '12'
elif u == 'd':
i = hex_list.index('d')
hex_list[i] = '13'
elif u == 'e':
i = hex_list.index('e')
hex_list[i] = '14'
elif u == 'f':
i = hex_list.index('f')
hex_list[i] = '15'
else:
pass
return hex_list
# print(change_chars())
def hex_binary():
"""將十六進製制轉成二進位制,不足四位補零"""
num_list = [int(k) for k in change_chars()]
for j in num_list:
while true:
if j != 1:
n = j % 2
j //= 2
elif j == 1:
repair_list.reverse()
if len(repair_list) % 4 == 0:
pass
elif len(repair_list) % 4 == 1:
repair_list.insert(0, 0)
repair_list.insert(1, 0)
repair_list.insert(2, 0)
elif len(repair_list) % 4 == 2:
repair_list.insert(0, 0)
repair_list.insert(1, 0)
elif len(repair_list) % 4 == 3:
repair_list.insert(0, 0)
binary_list.extend(repair_list)
repair_list.clear()
break
return binary_list
def print_binary():
binary_str = [str(h) for h in hex_binary()]
binary_int = int(''.join(binary_str))
print("所輸入十六進製制數轉成二進位制數為:%d" % binary_int)
binary_list.clear()
print_binary()
python-二進位制轉十六進製制
input_str = input('請輸入待轉二進位制數:')
input_list =
list_cut =
list_deal =
def binary_hex():
# 將字串逐個新增至列表
for i in input_str:
# print(input_list)
# 不足補零
if len(input_list) % 4 == 0:
pass
elif len(input_list) % 4 == 1:
input_list.insert(0, '0')
input_list.insert(1, '0')
input_list.insert(2, '0')
elif len(input_list) % 4 == 2:
input_list.insert(0, '0')
input_list.insert(1, '0')
elif len(input_list) % 4 == 3:
input_list.insert(0, '0')
# print(input_list)
# 字串切片
y = 0
while y < len(input_list):
y += 4
input_list.clear()
# print(list_cut)
num = 0
t = 3
for k in list_cut:
for p in k:
num += int(p) * 2 ** t
t -= 1
num = 0
t = 3
list_cut.clear()
# print(list_deal)
# 轉換字元
list_str = [str(u) for u in list_deal]
list_deal.clear()
for r in list_str:
if r == '10':
o = list_str.index('10')
list_str[o] = 'a'
elif r == '11':
o = list_str.index('11')
list_str[o] = 'b'
elif r == '12':
o = list_str.index('12')
list_str[o] = 'c'
elif r == '13':
o = list_str.index('13')
list_str[o] = 'd'
elif r == '14':
o = list_str.index('14')
list_str[o] = 'e'
elif r == '15':
o = list_str.index('15')
list_str[o] = 'f'
# print(list_str)
# 以字串形式輸出
end_str = ''.join(list_str)
list_str.clear()
print("所輸入的二進位制數轉化為十六進製制數為:%s" % end_str)
十六進製制位元組 十六進製制轉二進位制
做專案也將近一年的時間了。從一開始就經常提到 乙個十六進製制位元組 然而一開始就是迷惑的,直到現在。乙個十六進製制位元組,比如 ff。周圍的人經常說這是乙個十六進製制位元組。然後我就想,這不是兩個字元嗎,分別是f 和f,乙個字元是乙個位元組,兩個字元是兩個位元組,怎麼就成乙個十六進製制位元組,就成乙...
進製轉換 二進位制轉十六進製制 十六進製制轉十進位制
這幾天在做乙個與plc互動的系統,plc會傳過來一些指令,這些指令是二進位制的格式,要轉為4位十進位制的指令來讀,下面是 部分 public class byteschange int beginindex 0 int length 16 string instructions while true...
二進位制 八進位制 十六進製制
生活中我們普遍用十進位制,逢十進一。同理,二進位制八進位制和十六進製制是逢二進 一 逢八進 一 逢十六進一。十進位制是便於人理解而二進位制是便於電腦理解。二進位制在計算機內部使用是再自然不過的。但在人機交流上,二進位制有致命的弱點 數字的書寫特別冗長。二進位制和八進位制 二進位制和十六進製制之間的換...