0%

Python简单的位运算

位运算
程序中的数在计算机内存中都是以二进制的形式存在的,位运算就是直接对整数在内存中对应的二进制位进行操作。在C语言中经常使用,这几天研究Modbus重新学习了下,记录下

位运算分为 6 种如下:

按位与

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。

按位或

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1,否则为0。

按位异或

按位异或运算符:当两对应的二进位相异时,结果为1,否则为0。

按位取反

按位取反运算符:对数据的每个二进制位取反,即把1变为0, 把0变为1。

左移运算

左移动运算符:运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。

规律简单来说就是

下图就是c = a 2的5次方 相当于c = 6022222 =1920

右移运算

右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数

规律简单来说就是

下图就是c = a %2的2次方 相当于c = 60 %2%2=15

简单的二进制转十进制,十进制转二进制方法

1、二进制转为十进制

每一位乘以2的(位数-1)次方;
如下:

1101 = 12^(4-1)+12^(3-1)+02^(2-1)+12^(1-1) 即各个位拆开,,结果为13。

2、十进制转二进制时,采用“除 2 取余,逆序排列”法:

用 2 整除十进制数,得到商和余数;
再用 2 整除商,得到新的商和余数;
重复第 1 和第 2 步,直到商为 0;
将先得到的余数作为二进制数的高位,后得到的余数作为二进制数的低位,依次排序。
如图: