1.1.6难处理的符号

来源:互联网 发布:用c语言写求整数绝对值 编辑:程序博客网 时间:2024/06/07 12:22

答疑课

 

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)]

原创粉丝点击