任何数异或自己=把自己置为0 按位异或常见用途: 1.使某些特定的位翻转 (reverse) 2.实现两个值的交换,而不必使用临时变量
a=9(1001), b=12(1100) a = a^b //0101 b = b^a //1001 a = a^b //11003.快速判断两个值是否相等 return (a^b)== 0
原码:一个数绝对值的2进制码就是该数的原码 反码:对一个数的原码取反,得到的就是该数的反码 补码:对一个数的反码+1,得到的就是该数的补码(最小值除外)
计算规则:将2进制数据整体向左移动一位,高位自动溢出,低位补0
n = 00000100 10010001 00111111 01010101 m=n<<1 0000100 10010001 00111111 010101010 k=n<<2 000100 10010001 00111111 0101010100 j=n<<8 10010001 00111111 01010101 00000000计算规则:规则: 当高位(符号位)为1的时候,高位补1,保持负数符号,低位舍弃 当高位(符号位)为0的时候,高位补0,低位舍弃
n = -50 11111111 11111111 11111111 11001110 -50 m=n>>1 111111111 11111111 11111111 1100111 -25 k=n>>2 1111111111 11111111 11111111 110011 -13 n = 50 00000000 00000000 00000000 00110010 50 m=n>>1 000000000 00000000 00000000 0011001 25 k=n>>2 0000000000 00000000 00000000 001100 12计算规则:无论是正数还是负数,高位补0,低位舍弃
转载于:https://www.cnblogs.com/bgl0/p/9537943.html