如何声明一个 32 位二进制数的列表并在 Python 中移位?
How to declare a list of 32 bit binary numbers and shift in Python?
我正在尝试在 Python 中声明一个 32 位二进制数(1 和 0)的列表,在列表中选择一个数字,然后移位。
这是我声明列表的方式,但我觉得这不正确。
myList = [11111011001101011001101011001100, 11111111000011001101001100111111,
11000000111100001111000011110000, 11111111000000001111011100001111]
现在我想 select 我列表中的一个数字并将其向左移动 4
示例:
num = myList[0]
example = num << 4
print("original", num)
print("shifted", example)
输出如下所示:
original 11111011001101011001101011001100
shifted 177776176017616176017616176017600
如何解决我的申报和转移问题?谢谢
问题在于:
11111011001101011001101011001100
被解释为十进制数。因此,1 和 0 代表 10 的幂。您可以 使用 0b
前缀 来指定您正在编写二进制数,因此:
myList = [<b>0b</b>11111011001101011001101011001100, <b>0b</b>11111111000011001101001100111111,
<b>0b</b>11000000111100001111000011110000, <b>0b</b>11111111000000001111011100001111]
num = myList[0]
example = num << 4
print("original", <b>bin(</b>num<b>)</b>)
print("shifted", <b>bin(</b>example<b>)</b>)
您可以使用 bin(..)
为显示二进制符号的数字生成字符串。这将打印:
>>> print("original", bin(num))
original 0b11111011001101011001101011001100
>>> print("shifted", bin(example))
shifted 0b111110110011010110011010110011000000
请注意,在 python-3.x 中,int
具有 任意长度 。所以如果你想获得一个 32 位的数字,你将不得不用 0xffffffff
掩码(即 32 个设置位,所以 0b11111111111111111111111111111111
):
myList = [0b11111011001101011001101011001100, 0b11111111000011001101001100111111,
0b11000000111100001111000011110000, 0b11111111000000001111011100001111]
num = myList[0]
example = (num << 4)<b>&0xffffffff</b>
print("original", bin(num))
print("shifted", bin(example))
我正在尝试在 Python 中声明一个 32 位二进制数(1 和 0)的列表,在列表中选择一个数字,然后移位。
这是我声明列表的方式,但我觉得这不正确。
myList = [11111011001101011001101011001100, 11111111000011001101001100111111,
11000000111100001111000011110000, 11111111000000001111011100001111]
现在我想 select 我列表中的一个数字并将其向左移动 4
示例:
num = myList[0]
example = num << 4
print("original", num)
print("shifted", example)
输出如下所示:
original 11111011001101011001101011001100
shifted 177776176017616176017616176017600
如何解决我的申报和转移问题?谢谢
问题在于:
11111011001101011001101011001100
被解释为十进制数。因此,1 和 0 代表 10 的幂。您可以 使用 0b
前缀 来指定您正在编写二进制数,因此:
myList = [<b>0b</b>11111011001101011001101011001100, <b>0b</b>11111111000011001101001100111111,
<b>0b</b>11000000111100001111000011110000, <b>0b</b>11111111000000001111011100001111]
num = myList[0]
example = num << 4
print("original", <b>bin(</b>num<b>)</b>)
print("shifted", <b>bin(</b>example<b>)</b>)
您可以使用 bin(..)
为显示二进制符号的数字生成字符串。这将打印:
>>> print("original", bin(num))
original 0b11111011001101011001101011001100
>>> print("shifted", bin(example))
shifted 0b111110110011010110011010110011000000
请注意,在 python-3.x 中,int
具有 任意长度 。所以如果你想获得一个 32 位的数字,你将不得不用 0xffffffff
掩码(即 32 个设置位,所以 0b11111111111111111111111111111111
):
myList = [0b11111011001101011001101011001100, 0b11111111000011001101001100111111,
0b11000000111100001111000011110000, 0b11111111000000001111011100001111]
num = myList[0]
example = (num << 4)<b>&0xffffffff</b>
print("original", bin(num))
print("shifted", bin(example))