大家好!我是幻化意识流。
今天继续跟我学Python。
上次课,我们做了铺垫,就是先学习了把一个数字转换成各种进制,其实,我们这节课用到的就是二进制数,为什么呢?请往下看:
因为,这节课我们要学习新知识点——位运算:
实践是检验真理的唯一标准!操练起来:
拷贝代码:
bit1=bin(255)
print('255转二进制为:'+bit1)
bit2=int(bit1,2)
print('二进制转回十进制:'+str(bit2))
bit3=~0b11111111
print('0b11111111的取反操作结果为:'+str(bit3))
bit4=~bit3
print('bit3再取反得:'+str(bit4))
bit5=bin(-256)
print('-256的二进制为:'+str(bit5))
bit6=~-256
print('-256取反为:'+str(bit6))
结果:
以上只是位运算中取反的操作,发现什么规律了吗?
~255 = (255+1)* -1 =-256
~-256=(-256+1)*-1=255
即 ~X=(X+1)* -1 这个可以作为一个取反的公式来记忆。
思考其他位运算:
或、与、异或、位移 分别代表什么意思呢?
或:二者有一个真就是真
与:二者都为真才是真
异或:二者不同为真,相同为假
右移或左移N位
接着练习:
代码:
num1=0b01001110
num2=0b11100101
print('num1是0b01001110')
print('num2是0b11100101')
print('两数的或操作结果为:'+str(bin(num1|num2)))
print('两数的与操作结果为:'+str(bin(num1&num2)))
print('两数的异或操作结果为:'+str(bin(num1^num2)))
print('num1左移两位操作结果为:'+str(bin(num1<<2)))
print('num1右移两位操作结果为:'+str(bin(num1>>2)))
输出结果:
页面更新:2024-04-22
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号