一、位运算 位运算是对二进制数据进行操作的一种运算方式。计算机内部的数据都是以二进制形式存储和处理的,位运算正是利用了二进制的特性来进行数据的操作。常见的位运算符有与(&)、或(|)、异或(^)、取反(~)等。 1. 与运算(&) 与运算是对两个二进制数的每一位进行逻辑与操作,只有在两个位都为1时,结...
按位与(&):两个二进制数对应位都为1时,结果的该位才为1。 按位或(|):两个二进制数对应位有一个为1,结果的该位就为1。 按位异或(^):两个二进制数对应位不同,结果的该位为1。 按位取反(~):将二进制数的每一位取反(0变1,1变0)。 左移(<<):将二进制数的所有位向左移动指定的位数,右侧补...
一、与位运算符(&) 与位运算符(&)是一种按位与运算,用于比较两个二进制数的对应位,只有当对应位都为1时,结果位才为1,否则为0。例如,对于二进制数1010和1100进行与运算,结果为1000。与运算主要应用于位掩码、权限控制和数据过滤等方面。 二、或位运算符(|) 或位运算符(|)是一种按位或运算,用于比较两...
A&B运算结果:1(d)=00000001(b) 按位或(|) 规则:0|0=0,0|1=1,1|0=1,1| 1=1 A|B运算结果:89(d)=01011001(b) 按位异或(^) 规则:0^0=0,0^1=1,1^0=1,1^1=0 A^B运算结果:88(d)=01011000(b) 取反(~) 规则:0->1,1->0 ~A运算结果:-82(d)=10100110(b) 左移(<<) A<<2...
仅最后一位都为0,所以结果为110 4|6=6 3. 异或 ^ 异或运算规则: 1^0=11^1=00^0=0 以9和3的异或运算为例: 9的二进制为 1001 3的二进制为 0011 不相同的位数为右数第2、4位,所以结果为1010 9^3=10 4. 左移 << 右移 >> 左移
位运算包括与,或,取反,异或,左移,右移等。 一 位运算计算 1 与运算:& 操作符&将2个数的二进制位进行与操作,2个数对应的位都为1,运算结果为1;否则运算结果为0。 比如6&8,6的二进制为:0110 8的二进制为:1000。所以6&8 = 0000 = 0 2 或运算:| ...
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。 “异或运算”的特殊作用: (1)使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。 例:X=10101110,使X低4位翻转,用X ^0000 1111 = 1010 0001即可得到。
1.6 位运算 位运算是指对二进制数的运算,位运算虽然在工作中很少用到,但是其作用很大,如果经常看源码的道友一定经常看到位运算,如果不懂二进制位运算也就云里雾里了,在此笔者总结了下四个基本位运算的使用。 1.6.1 &运算 与运算是指两个二进制数相同位同时为1则结果为1。
1.位运算 &与 |或 ~非 ^ 异或 >> 右移 << 左移 常用操作: (1) 求x的第k位数字 x >> k & 1 (2) lowbit(x) = x & -x,返回x的最后一位1 2. 常用库函数、 (1) reverse 翻转 翻转一个vector: reverse(a.begin(), a.end()); ...
位运算符是按照二进制进行运算。 & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1 ~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1...