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

如题所述

在数字世界的底层逻辑中,位运算如同神秘的密钥,解锁高效的数据处理和内存管理。本文将带你深入理解二进制与位运算的实用操作,以Python为例,逐层揭示其奥秘。


基础入门

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


符号与数值的秘密

在二进制中,符号位的0代表正数,1则代表负数。在C语言中,无符号类型的存在使得符号位的处理略有不同。当byte提升为int时,正数会补0,负数则补1以保持原始数值的完整性。


通过实例验证,如byte -55转int后保持不变(-55),而byte 100在提升为int时,高位的0被忽略,只剩实际数值(100)。


二进制的负数编码

非符号位全0在二进制中代表-128,通过逐位借位,我们可以表示出更小的负数值。这是一种独特且直观的数制表示方式。


位运算的法则

位运算符如and, or, xor遵循交换律和结合律,而not运算符则仅具结合律。理解这些基本的运算规则,是进行位操作的基石。


进阶探索

要更深入学习,推荐黄伟亮的位运算实用操作汇总,那里有更丰富的实例和理论讲解。同时,查阅w3cschool, Java JDK, 《算法问题实战策略》以及Java类型转换的相关资料,将帮助你构建全面的位运算知识体系。


通过位运算,你将揭开数据处理的神秘面纱,提升代码执行效率。现在,让我们一起踏入这奇妙的数字世界,开始你的位运算之旅吧!

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

二进制与位运算实用操作汇总(基础篇)
概念篇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得看被移数是正还是负。位运算符与赋值运算符结合,...

相似回答
大家正在搜