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 位运算及二进制基础知识的主要内容,如果未能解决你的问题,请参考以下文章

《算法零基础100讲》(第48讲) 位运算 (左移)

《算法零基础100讲》(第49讲) 位运算 (右移)

Python 基础1 - 位运算符

# 2019-2020-1 20175333曹雅坤 《信息安全系统设计基础》第二周学习总结

Python基础入门之位运算符

Python基础入门之位运算符