数学计算贷款理财房产置业汽车出行税务薪资商业财税健康健身日期时间单位换算生活实用教育学业科学工程工程建筑母婴女性
首页 / 名词解释 / 位运算

位运算 按位操作、与或非异或、移位

直接对整数的二进制位逐位做与、或、非、异或等操作。

位运算是直接作用在整数二进制位上的运算,把两个数对齐后一位一位地处理,和加减乘除是完全不同的两套规则。常见的有四种逻辑操作:与(两位都为 1 才得 1)、或(有一位为 1 就得 1)、异或(两位不同才得 1)、取反(把每一位的 0 和 1 对调)。

还有一类是移位。左移一位相当于乘以 2,左移 n 位就是乘以 2 的 n 次方;右移一位相当于整除 2、向下取整丢掉余数。移位比乘除快,在底层代码里很常用。

位运算的实际用途集中在「精细控制某几位」:

常见的坑是负数和位宽。计算机里负数用补码表示,对负数取反、移位得到的结果要放在固定位宽(8 位、32 位、64 位)里看才准确,超出范围的高位会被截断。做位运算前先确认处理的是几位整数。

关于位运算的常见问答

与、或、异或有什么区别?与是两位都为 1 才得 1,或是有一位为 1 就得 1,异或是两位不同才得 1。简单记:与要求都真,或只要一个真,异或要求不一样。

左移和乘法一样吗?对非负整数,左移 n 位就等于乘以 2 的 n 次方,速度更快。但左移只能乘 2 的幂,而且移出位宽的高位会丢失,乘法则不会。

异或能用来做什么?能找出两个数不同的位,也能不用临时变量交换两个值。因为一个数异或另一个数再异或同一个数会还原,所以常见于校验和简易加密。

用到「位运算」的计算器

相关名词

← 返回名词解释大全