Python处理单个数据位



我正在尝试以二进制模式打开一个文件,以便我可以在位级别操作它。

我正在尝试获取二进制信息:

with open('file.txt', 'rb') as f:
    data = f.read()

但是当我试着打印出来的时候,我得到了一个十六进制和一些奇怪的(对我来说)字符的混合物,就像下面的

...~xebxdd{xdfxbaxf7^xf7xeexbdxd7...

如何获得二进制信息为0和1,并能够将0110 1001更改为1001 0110

二进制数据只是数字。更重要的是,Python对booleanbyte的处理方式与int相同。使用BytesIO将允许您以数字流的形式访问文件,每个数字流代表一个字节。

输入以2为基数的数字,使用0b00000000语法。使用"{:08b}".format(number)查看号码。要将0b01101001改为0b10010110,请使用~0b01101001 & 0xFF~运算符翻转位,而& 0xFF只是一个掩码,将int中剩余的24位归零。(这是必要的,因为我们翻转了所有32位,所有前面的0现在都是1,我们根本不希望这样)。

相关内容

  • 没有找到相关文章

最新更新