10000000 128
10000001 129
与(&) : 两个操作数中位都为1,结果才为1,否则结果为0
128&129=128 (10000000 )
非(~): 如果位为0,结果是1,如果位为1,结果是0
~129=-130(01111110 ) 简单计算 :+1符号取反
00000000 10000001 二进制
11111111 01111110 符号~取反 得到补码
11111111 01111101 负数反码 -1,在计算机中 正数,负数都是通过补码的形式保存的 ,因为负数需要+1 所以我们反码的时候需要-1
1000000 10000010 反码转原码取反 第一位符号位1负数 0正数 -130
或(|) : 两个位只要有一个为1,那么结果就是1,否则就为0
128|129=129 (10000001)
异或(^):两个操作数的位中,相同则结果为0,不同则结果为1。
128^129= 1(00000001)
左位移 :左位移的符号是<<,其运算规则是:按二进制形式把所有的数字向左移动对应的位数 ,原来数的所有二进制位都向左移动 1 位,高位移出(舍弃),低位的空位补零。
30 二进制 0001 1110
30 << 4 30* 2的四次方
1111 00000 = 480
1111 000000 = 960
右位移 :右位移的符号是>>,其运算规则是:原来数的所有二进制位都向右移动 1 位。原来位于右边的最低位被移出舍弃,再向最高位追加 0 补位。
30 >> 4 30 / 2的四次方
0000 0001 = 1
//值反转
(0x04AB &0x00ff) +"==" + ((0x04AB &0xff00) >>8)












网友评论