Python 十六進製制 二進位制互轉

2021-10-10 22:03:08 字數 3867 閱讀 9120

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

二進位制 八進位制 十六進製制

生活中我們普遍用十進位制,逢十進一。同理,二進位制八進位制和十六進製制是逢二進 一 逢八進 一 逢十六進一。十進位制是便於人理解而二進位制是便於電腦理解。二進位制在計算機內部使用是再自然不過的。但在人機交流上,二進位制有致命的弱點 數字的書寫特別冗長。二進位制和八進位制 二進位制和十六進製制之間的換...