位运算符——左移(<<)、右移(>>)、与(&)、非(~)、或(|)、异或(^)

来源:互联网 发布:网络运维方案 编辑:程序博客网 时间:2024/06/06 18:35
<<左移
将位数向左移动
如:10左移8位变成512,二进制为10变成10 0000 0000


>>右移
将位数向右移动
如:2048右移8位变成8,二进制为1000 0000 0000变成1000


&与运算
两个操作数中位都为1,结果才为1,否则结果为0
如:240&60结果为48,二进制为1111 0000 & 11 1100 结果 11 0000


|或运算
两个位只要有一个为1,那么结果就是1,否则就为0
如:252|60结果为252,二进制为1111 0000 | 11 1100 结果 1111 1100


~非运算
如果位为0,结果是1,如果位为1,结果是0
详细过程如下:⑴1的补码为0000 0001按位求反后变为1111 1110因为此数为负数,将这个结果从补码变为原码:1、先求反,最高位(符号位)不变:1000 00012、再加1:1000 0010;结果即为-2


^异或运算符
两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子
如:15^2结果为13,二进制为1111 ^ 10 结果 1101
1 0
原创粉丝点击