基本上,我試圖從陣列中獲取 1 和 0 的值并對其執行按位運算。
board = np.array([1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
for x in board:
s = str(x)
s = int(s)
然而這顯然是不正確的。這有它自己的二進制值,如果我對它執行按位運算(例如 >>),我正在移動底層二進制檔案。
那么如何動態創建二進制字串來執行按位運算呢?
任何幫助表示贊賞。
uj5u.com熱心網友回復:
board = np.array([1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
for x in board:
s = str(x)
s = int(s)
int 自動轉換為基數 10,但您也可以使用 int(s,2) 將其轉換為基數 2。然后您將獲得 base2 數的基數 10 表示。所以 int("110",2) 將是 6 并且 6<<2 將是 24 或 6>>2 將是 1。
同樣在使字串化更容易的方面,你可以使用
s = "".join(map(str, board))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/441550.html
上一篇:多個檔案作為函式輸入
