二进制与位运算实用操作汇总(基础篇)

如题所述

二进制与位运算实用操作汇总(基础篇)


位运算作为高效且内存占用低的操作,理解起来却颇具挑战。本文旨在通过逐步讲解,从基本概念入手,深入到实际应用和算法题实战,带你掌握位运算的精髓。


概念篇

    and 操作(&):按位与,当两个对应二进制位都为1时结果为1。
    or 操作(|):按位或,只要一个对应二进制位为1,结果即为1。
    xor操作(^):按位异或,仅当一个对应二进制位为1,结果才为1。
    not操作(~):按位非,对所有二进制位取反。
    shl操作(<<):左移,相当于乘以2的指定位数。
    shr操作(>>):右移,符号位决定填充0或1,相当于除以2的指定位数。

原理篇

    进制转换:二进制与十六进制的转换基于位对齐,如每四个二进制位对应一个十六进制位。
    字节与二进制:byte作为内存最小单位,与二进制的关系影响了二进制与十六进制的实用性。

二进制运算符范围与性质

运算符的使用受限于参与变量的数据类型,例如,byte到int的变化可能导致补位以保持原值不变。


定律篇

    and、or和xor操作遵循交换律和结合律。
    not操作有结合律。
    shl和shr操作无需证明定律。

深入学习请查阅相关链接:

温馨提示:内容为网友见解,仅供参考
无其他回答

二进制与位运算实用操作汇总(基础篇)
概念篇and 操作(&):按位与,当两个对应二进制位都为1时结果为1。or 操作(|):按位或,只要一个对应二进制位为1,结果即为1。xor操作(^):按位异或,仅当一个对应二进制位为1,结果才为1。not操作(~):按位非,对所有二进制位取反。shl操作(<<):左移,相当于乘以2的指定位数。

二进制与位运算实用操作汇总(基础篇)
基础入门位运算包括按位与(&), 或(|), 异或(^), 非(~), 左移(<<), 右移(>>)等,它们在计算机内存中发挥着关键作用。以二进制和十六进制为例,理解它们之间的转换,能够洞察数据在内存中的存储方式,特别是字节与二进制的关联,揭示了它们在内存储存中的效率优势。符号与数值的秘密在二进制中...

硬核基础二进制篇(二)位运算
位运算包括按位与(&)、或(|)、异或(^)与按位非(~),常见应用如判断奇偶性、React Fiber Flags操作、生成掩码等。左移与右移操作分别用于乘法与除法运算。无符号右移(>>>)在JavaScript中用于保持32位无符号整数的运算结果,适用于需要保留高位补0的情况,解决负数转换二进制得到补码的问题。文章总结...

【Protobuf专题】(二)二进制基本概念及位运算
首先,理解位和字节的概念是关键。一个字节由8个位构成,无符号整型通常占用1字节,取值范围为0至255;有符号整型同样占用1字节,取值范围从-128到127。接着,我们分析高低位和符号位的概念。十进制数1的二进制表示为0000 0001,最左位为符号位;而-1的二进制表示为1111 1111,同样从左到右表示高低...

二进制位与和位或运算有哪些?
1、ANL 位与运算,就是二进制数字一位一位进行与运算: 0*1=0, 1*1=1...比如说07H(0000 0111)和A1H(1010 0001)进行位与运算,就一位一位地与:0000 0111 1010 0001 --- 0000 0001 就变成了01H。代码可以写成:A=07H ANL A, #A1H 运行出来A里面就是01H。2、ORL 位或运算,就...

与, 或, 非, 异或, 这些基础位运算是如何计算加减法(加法器)
在二进制的世界里,加法的实现基于位运算,如异或(XOR)和与(AND)。首先,我们来看基础的位运算规则:1+1=10(异或),1+0=1,0+1=1,0+0=0。以两位数为例,1+1的高位是异或,低位是与运算的结果。具体到计算单元,我们有半加器,如上图所示,A与B的异或结果(A^B)作为输出,与进位C...

位运算总结(按位与,或,异或)
操作数每右移一位,相当于该数除以2。例如:a = a>> 2 将a的二进制位右移2位,左补0 or 补1得看被移数是正还是负。如果两个不同长度的数据进行 位运算 时,系统会将二者按右端对齐,然后进行 位运算 。以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个...

二进制减法怎么算求教?
二进制减法,与十进制减法在基本原理上类似,均需使被减数和减数的小数点对齐。操作步骤如下:第一步,对齐被减数与减数的小数点。第二步,从末位开始,进行同位相减。若被减数小于减数,则需要从更高位“借”一位,相当于在本位加2(在十进制中为加10)。例如,计算二进制数1010(十进制为10)减去10...

二进制位运算实战(2)-异或,按位或,按位与,取反
异或运算符的规则如下所示: 1^1=0 0^1=1 1^0=1 0^0=0 异或的规则不太好记, 但是只要记住一句话"加法不进位", 那么一切将会豁然开朗; 在二进制中,1 + 1 的结果是10。而加法不进位就是 1 + 1 = (1)0 = 0,把进位的1去掉,所以1^1的结果就是0。那么异或效果可以用于对位置n的...

位运算常见用法
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2。例如:a = a>> 2 将a的二进制位右移2位,左补0 or 补1得看被移数是正还是负。位运算符与赋值运算符结合,...

相似回答
大家正在搜