Java位运算符
原创约 239 字
操作符 | 实例 | 等效于 | 备注 |
---|---|---|---|
<< 左移 | // 8int a = 1 << 3 | int a = 1 * 2^3 | 左移操作相当于 左移数 乘以2的N次幂(正整数, 需要考虑int的最大值)左移操作的本质是将数字转换为二进制,舍弃前N位.向后补N个0; |
>> 右移 | int a = 1 >> 3 | `` | 右移操作的本质是将数字转换为二进制,舍弃后N位,向前补N个0; |
>>> 无符号右移 | `` | 忽略符号位, 空位补0 | `` |
& 与 | // 1int a = 1 & 1// 0int b = 1 & 0// 0int c = 0 & 0 | `` | 与计算是将两个数的二进制表示后进行对位比较,仅当同位都为1时输出1,否则输出0; |
或 | // 1int a = 1 | 1// 1int b = 1 | |
^ 位异或 | `` | 二进制表达后,相同位置的数相同为0,相反为1. | `` |
~ 位非 | `` | 二进制表达后,取反 | `` |