Python 位运算及二进制基础知识
Posted bestallen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 位运算及二进制基础知识相关的知识,希望对你有一定的参考价值。
来补点基础知识,这篇讲的是位运算
二进制实际上就是用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 位运算及二进制基础知识的主要内容,如果未能解决你的问题,请参考以下文章