我如何显示一个字节的位长度,而不是整数

how do i show bit length of a byte, NOT Integer

#Python 3+

我读取了 bin 字节 读取大小=1

以 f 打开(ArgsFile,“rb”): 字节 = f.read(ReadSize) 打印(字节)

示例输出 'h'

显示我要写的 Pos 整数 打印(len(bin(1)[2:])) 或负整数 len(bin(-1)[3:])

如何打印从文件中读取的字节所需的位长度?

您可以尝试这样的操作:

测试文件:

$ hexdump -C ~/test.bin 
00000000  b1 23 50 c2 06                                    |.#P..|
00000005

test.py:

import sys


def main():
    with open("test.bin", "rb") as f:
        while b := f.read(1):
            bits = int.from_bytes(b, sys.byteorder).bit_length()
            print(b.hex(), bits)


if __name__ == "__main__":
    main()

测试:

$ python test.py
b1 8
23 6
50 7
c2 8
06 3