学了一个多星期python
好像没干啥正经事
总结一下学习成果
(顺便试验一下公众号的自动回复功能)
以下教材《像计算机科学家一样思考Python+(第2版)》
学python第一天就卡在位运算符,虽然并不妨碍后续编程,但总像赛博朋克捏不出好看的脸一样憋屈。
V——赛博朋克2077
(1)位运算符
位运算符包括>>,<
基础(以八位为例)
原码:符号位+数字位(7位)
补码:符号位不变,数字位0变1,1变0
6的原码:00000110 补码:01111001
-6的原码:10000110 补码:11111001
计算符号
x>>n: x的原码向右舍去n位
6>>1=0000011=3
6>>2=000001=1
事实上,>>相当于计算x//2的n次方
x<
6<<1=000001100=12
6<<2=0000011000=24x&y
事实上,<
x&y:对位比较x,y原码,二者都为1则值为1,反之为0
6=00000110
5=00000101
故6&5=00000100=4
x|y:对位比较x,y原码,二者中只要有一个为1则值为1,反之为0
6=00000110
5=00000101
故6|5=00000111=7
~x:对x原码的每一位都交换1或0
~6=-7
相当于-x-1
或是补码-1
x^y: x、y原码的异或(Xor)(同处取0,不同处取1)或是补码的或(or)
6=00000110
2=00000010
3=00000011
2^6=6^2=00000100=4
3^6=6^3=00000101=5
事实上,对于任意bit的原码和补码,计算结果都相同
(现在python对于大数已经没有bit限制)
碎碎念:
码一篇推文的时间够我学三章python或者拼半个猫猫了
以后可能还是不会继续了
不过呢就当试验一下公众号的自动回复功能吧
今日小作业:6|4^5=?
hxd们球球不管有没有做出来都给我公众号发个消息呗
分割线的分割线
想秀恩爱了——这个假期我们会拼完他的
以及高P美照