我正在尝试读取二进制字符串中的单个位,但似乎无法使其正常工作。我读入一个值,然后转换为 32b 字符串。从那里我需要读取字符串中的特定位,但它并不总是相同的。getBin 函数返回前导 0 的 32 位字符串。我的代码总是返回 1,即使该位是 0。代码示例:
slot=195035377
getBin = lambda x, n: x >= 0 and str(bin(x))[2:].zfill(n) or "-" + str(bin(x))[3:].zfill(n)
bits = getBin(slot,32)
bit = (bits and (1 * (2 ** y)) != 0)
print("bit: %i\n"%(bit))
在这个例子中bits = 00001011101000000000000011110011
如果我正在寻找i
sa 0 的 bit3,则 bit 将等于 1。有什么想法吗?