python--- 难缠符号,二进制,位移,取反,异或,按位与,按位或,奇偶判断,硬盘容量,真假

python— 难缠符号

一、先得从二进制讲起

root@kali:~/python/laowangpy# ipython
Python 2.7.3 (default, Mar 14 2014, 11:57:14) 
Type "copyright", "credits" or "license" for more information.

IPython 4.0.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: print 'hello'
hello

In [2]: a = 1

In [3]: bin(a)
Out[3]: '0b1'

In [4]: bin(4)
Out[4]: '0b100'

In [5]: bin(3)
Out[5]: '0b11'

In [6]: bin(2)
Out[6]: '0b10'

In [7]: bin(5)
Out[7]: '0b101'

In [8]: 

二、难缠符号
bin
1、难缠符号之一 >> <<
位移

In [8]: 3 >> 1
Out[8]: 1

In [9]: bin(3)
Out[9]: '0b11'

In [10]: bin(1)
Out[10]: '0b1'

In [11]: 
In [11]: 31 >>1
Out[11]: 15

In [12]: bin(31)
Out[12]: '0b11111'

In [13]: bin(15)
Out[13]: '0b1111'

In [14]: 
In [14]: 1<< 1
Out[14]: 2

In [15]: bin(2)
Out[15]: '0b10'

In [16]: bin(1)
Out[16]: '0b1'

In [17]: 2 << 1
Out[17]: 4

In [18]: bin(4)
Out[18]: '0b100'

In [19]: 4 << 1
Out[19]: 8

In [20]: bin(8)
Out[20]: '0b1000'

In [21]: 

左移公式
x<

In [26]: 2 << 3
Out[26]: 16

In [27]: 3 << 3
Out[27]: 24

In [28]: 4 << 3
Out[28]: 32

In [29]: 5 << 3
Out[29]: 40

In [30]: 3*(2**3)
Out[30]: 24

In [31]: 4*(2**3)
Out[31]: 32

In [32]: 5*(2**3)
Out[32]: 40

In [33]: 

2、难缠符号之二 &
按位与

1100
1000  &
---------
1000

1&1=1  1&0=0  0&1=0  0&0=0
In [33]: 10&20
Out[33]: 0

In [34]: bin(10)
Out[34]: '0b1010'

In [35]: bin(20)
Out[35]: '0b10100'

In [36]: 

01010
10100 &
---------
00000
In [36]: 40&32
Out[36]: 32

In [37]: bin(40)
Out[37]: '0b101000'

In [38]: bin(32)
Out[38]: '0b100000'

In [39]: 

101000
100000 &
---------
100000
In [43]: int(0b10000)
Out[43]: 16

In [44]: int(0b100000)
Out[44]: 32

In [45]: 

3、难缠符号之三 |
按位或

1|1=1  1|0=1  0|1=1 0|0=0
In [46]: 145 | 300
Out[46]: 445

In [47]: bin(145)
Out[47]: '0b10010001'

In [48]: bin(300)
Out[48]: '0b100101100'

In [49]: 

In [49]: bin(445)
Out[49]: '0b110111101'

In [50]: 

010010001
100101100 |
-------------
110111101

4、难缠符号之四 ^
按位异或

5、难缠符号之四 ^
按位取反

三、其他
1、&之奇偶判定

root@kali:~/python/laowangpy# python
Python 2.7.3 (default, Mar 14 2014, 11:57:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5 % 2
1
>>> 4%2
0
>>> 5&1
1
>>> 4&1
0
>>> bin(4)
'0b100'
>>> bin(1)
'0b1'

2、计算硬盘容量

>>> 11866 >> 10
11
>>> 11866 / (2**10)
11
>>> 2**10
1024
>>> 

3、真真假假不知晓

>>> True & True
True
>>> True & False
False
>>> False & False
False
>>> False & False & True
False
>>> False & False & True & True
False
>>> True & True & True & True
True
>>> 

你可能感兴趣的:(pyhton,基础知识)