1.1.6难处理的符号

答疑课

 

aa = [(2*(x/2)>>0,2*(x%2)) for x inxrange(4)]    ##这里不明白

print [((x>>1)<<1,(x &1)<<1) for x in xrange(4)] ##这里不明白

 

 

一.先得讲讲二进制。

bin(3)

 

二.难缠符号来啦。

1.难缠符号之一 

不会算的可以先用bin()先变成二进制码在做运算。

 >>(右位移) << (左位移)移动的是二进制码

 左移低位补0 右移低位消失

 

2.难缠符号之二

& 按位与  右对齐高阶不够补只有同时为1时才为其他都为0

 

3.难缠符号之三 |

按位或  右对齐高阶不够补只有有一个为1则为1

 

4.难缠符号之四 ^

 

按位异或  当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为与或的区别是或如果两个都为1则为1 但是异或两个为1则为0

 

5.难缠符号之五

 

按位取反  对变量  中全部二进制位取反

 

 

三.其他

 

1.&之奇偶判定  按位与1

奇数与1相与为1

 

2.计算硬盘容量 右位移10

 

 

 

四.回过头来再看这道题

 

print [((x>>1)<<1,(x &1)<<1) for x in range(4)]

输出为[(0, 0), (0, 2),(2, 0), (2, 2)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值