python 菜鸟教程函数python菜鸟教程字符串反转正则表达式
下载地址 https://share.weiyun.com/t0F2btJ7
资料目录 菜鸟教程Python100例视频讲解课程 《Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手》.pdf Python 编码规范(Google) _ 菜鸟教程.pdf Python 实战-从菜鸟到大牛的进阶之路 - v1.1.pdf Python菜鸟教程.doc Python菜鸟教程word练习.doc Python菜鸟教程图文word程序填空阅读填空程序试题.doc 菜鸟的Python笔记.pdf 菜鸟教程Python教程100例.doc
举例 位运算符 位运算符用于对二进制数进行计算,因此,需要先将要执行运算的数据转换为二进制数,然后才能进行运算。Python 中的位运算符有位与(&)、位或(|)、位异或(^)、位取反(~)、左移位(<<)和右移位(>>)。 说明:整型数据在内存中以二进制数的形式表示,如整型变量 7 的 32 位二进制数表示为 00000000 00000000 00000000 00000111,其中,左边最高位是符号位,最高位是 0表示正数,若为 1 则表示负数。负数采用补码表示,如-7 的 32 位二进制数表示为11111111 11111111 11111111 11111001。 1.“位与”运算 “位与”运算的运算符为“&”,“位与”运算的运算法则是:两个操作数的二进制数表示,只有对应位都是 1 时,结果位才是 1,否则为 0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如图 3.12 所示。 2.“位或”运算 “位或”运算的运算符为“|”,“位或”运算的运算法则是:两个操作数的二进制数表示,只有对应位都是 0,结果位才是 0,否则为 1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如图 3.13 所示。 图 3.12 12&8 的运算过程 图 3.13 4|8 的运算过程 3.“位异或”运算 “位异或”运算的运算符是“^”,“位异或”运算的运算法则是:当两个操作数的二进制数表示相同(同时为 0 或同时为 1)时,结果为 0,否则为 1。若两个操作数的精度不同,则结果数的精度与精度高的操作数相同,如图 3.14 所示。 4.“位取反”运算 “位取反”运算也称“按位非”运算,运算符为“~”。“取反”运算就是将操作数对应二进制数中的 1 修改为 0,0 修改为 1,如图 3.15 所示。 图 3.14 31^22 的运算过程 图 3.15 ~123 的运算过程 在 Python 中,使用 print()函数输出如图 3.12~图 3.15 所示的运算结果,代码如下: 01 print("12&8 = "+str(12&8)) # 位与计算整数的结果 02 print("4|8 = "+str(4|8)) # 位或计算整数的结果 03 print("31^22 = "+str(31^22)) # 位异或计算整数的结果 04 print("~123 = "+str(~123)) # 位取反计算整数的结果 运算结果如图 3.16 所示。 图 3.16 图 3.12~图 3.15 的运算结果 5.左移位运算符<< 左移位运算符<<将一个二进制操作数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用 0 补充。左移位运算相当于乘以 2 的 n 次幂。 例如,int 类型数据 48 对应的二进制数为 00110000,将其左移 1 位,根据左移位运算符的运算规则可以得出(00110000<<1)=01100000,所以转换为十进制数就是 96(48×2);将其左移 2 位,根据左移位运算符的运算规则可以得出(00110000<<2)=11000000,所以转换为十进制数就是 192(48×2 2 ),其执行过程如图 3.17 所示。 图 3.17 左移位运算 6.右移位运算符>> 右移位运算符>>将一个二进制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,而在填充左边(高位端)的空位时,如果最高位是 0(正数),左侧空位填入 0;如果最高位是 1(负数),左侧空位填入 1。右移位运算相当于除以 2 的 n 次幂。 正数 48 右移 1 位的运算过程如图 3.18 所示。 图 3.18 正数的右移位运算过程 负数-80 右移 2 位的运算过程如图 3.19 所示。 图 3.19 负数的右移位运算过程 多学两招 由于移位运算的速度很快,在程序中遇到表达式乘以或除以 2 的 n 次幂的情况时,一般采用移位运算来代替。
|