我有以下
a = 340282366920938463463374607431768211455
b = 127
print(a >> b)
它的值为1,但我不知道为什么。有什么建议吗?我做得对吗?结果是意料之中的吗?
具体来说,问题是:
Shift A, right by B, where:
A = 340282366920938463463374607431768211455
B = 127
这是预期的结果。340282366920938463463747431768211455是一系列128’1的位。如果你把它右移127位,其中127个"1"被删除,只剩下"1"。
如果你想看到它的作用,可以尝试使用python的bin()
函数,例如
a = 340282366920938463463374607431768211455
b = 127
print(bin(a)) // '0b1111.....'
print(len(bin(a))) // 130 (including '0b', so its actually 128)
print(bin(a >> b)) // '0b1'