您的位置:首页 > 编程语言 > Python开发

Python 位运算及二进制基础知识

2016-06-26 16:59 344 查看
来补点基础知识,这篇讲的是位运算

二进制实际上就是用10进制的数的每一位数字的2的幂数

来看例子:



然后再python的操作中,只要在数字前面加上0b的字符,就可以用二进制来表示十进制数了。



随后,在python的函数中,有一个bin()函数,直接可以将输入的十进制数,转换成二进制,但是,输出的格式是str,不是number!!!



接着我们来讲下如何使用位运算符,具体如下图,你可以认为是整个数字排列向左或者向右挪动了几个位置



接着,我们来看一下位运算中的逻辑运算

首先来讲AND运算,什么意思呢,就是,比较2个数字,只有在这2个数字的位数上,2者都是1的情况下,才能继承1,不然则得0

从下面的例子可以看到,只有2者都是0的位数,AND运算后,才能继承0,不然为1.

所以AND运算出来的数,只会是小于或者等于进行AND运算的这2个数字.





接着我们来看下OR运算

这个就以此类推了,位数中,只要有一位是1,那就继承1,两者都为0的时候才是0.





接着是异或运算XOR,这个是什么意思呢?就是,只有当2个运算数字的位数上,有一者为0的时候,才继承1,其余皆生成0,即使是2者都为1,也是0,两者都为0,也是0.





这章节内容有点多啊,下面继续讲,位掩码功能

位掩码什么功能呢?他可以检测指定位数的bit是on还是off,比如他用一个0b0100的数字和一个目标数字去做AND运算,以期检测这个目标数字从右往左第三位是否是on的状态,如果输出结果是大于0的,那么这个位置肯定是1.

还有功能就是可以翻转位数的on或者off

然后第三张图片,他是通过OR运算,用0去或运算目标数字的位数,来期望检测目标数位是on还是off的结果。

后面第四张图的异或XOR运算,也是此意。

第五张照片,是通过位移的方法,来翻转位数,通过左移9位,来将第10位数翻转到on.









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 二进制 位运算