我有變數包含型別為 int ([101, 1101, 11001]) 的二進制變數,但我想將它與另一個變數異或,所以我必須更改為字串并添加“0”所以它有 8 個數字示例 101 它會變成00000101
我正在嘗試將 int 更改為 str 但它無法正常作業。這是我的代碼:
def bit8(input):
print(input)
y = str(input)
print(y)
index = 0
for index, a in enumerate(y):
y[index] = a "0"
return y[index]
輸入將包含陣列 [101, 1101, 11001] 并將變為 ["00000101", "00001101", "00011001"] 想法是我將拆分它們,我將添加 "0" 并將其再次保存到新陣列
但我不知道該怎么做。請幫我
uj5u.com熱心網友回復:
您可以簡單地嘗試 格式
l =[101, 1101, 11001]
c = "{:08d}".format
print([c(item) for item in l])
輸出 #
['00000101', '00001101', '00011001']
作為一個函式
def bit8(input):
c = "{:08d}".format
ou=([c(item) for item in input])
return ou
驅動程式代碼
print(bit8(l))
zfill 也可以
l =[101, 1101, 11001]
def bit8(input):
ou2=[str(i).zfill(8) for i in input]
return ou2
驅動程式代碼#
print(bit8(l))
zfill 方法的輸出#
['00000101', '00001101', '00011001']
uj5u.com熱心網友回復:
也許您想XOR直接使用并轉換您的輸入:
a = [101, 1101, 11001]
def toBinary (s):
return int(str(s), base=2)
def toStringInteger (s):
return int(f'{s:08b}')
a_int = [toBinary(s) for s in a]
# a_int is now [5, 13, 25]
# XOR with 11111 (^ is the XOR operator)
xored_int = [e ^ 0b11111 for e in a_int]
xored = [toStringInteger(s) for s in xored_int]
# Printing the XOR value
print(f"{a} XOR 11111 is {xored}")
>>> [101, 1101, 11001] XOR 11111 is [11010, 10010, 110]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525695.html
