返回介绍

位操作

发布于 2024-01-29 22:24:17 字数 918 浏览 0 评论 0 收藏 0

除了一般的数学运算(加法、减法等),Python也支持C语言中的大多数数学表达式。这包括那些把整数当作二进制位串对待的操作。例如,还可以实现位移及布尔操作:

在第一个表达式中,二进制数1(逢2进位,0001)左移了两位,成为二进制数4(0100)。最后的两个操作一个是二进制或(0001|0010=0011),一个是二进制与(0001&0001=0001)。这样的按位进行掩码的运算,使我们可以对一个整数进行多个标志位和值进行编码。

在这个领域里,Python 2.6和Python 3.0中都支持的二进制和十六进制数变得特别有用,它们允许我们按照位字符串来编写和查看数字:

我们在这里不会涉及更多的关于“位运算”的细节。如果需要的话,它是支持的,并且如果Python代码必须与由C程序生成的网络包或封装了的二进制数打交道的话,它是很实用的。尽管这样,注意位操作在Python这样的高级语言中并不像在C这样的底层语言中那么重要。作为一个简明的法则,如果你需要在Python中对位进行翻转,你应该想想现在使用的是哪一门语言。一般来说,在Python中有比位字符串更好的编码信息的方法。

注意:在即将发布的Python 3.1中,整数的bit_length方法也允许我们查询以二进制表示一个数字的值所需的位数。通过bin和内置函数len(本书第4章介绍过)得到二进制字符串的长度,然后在减去2,我们往往可以得到同样的效果,尽管这种方法效率较低:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文