>> << >>> <<<有什么区别?
时间: 2023-08-17 18:03:40 浏览: 137
ob<x>jective-C学习资料汇总专题
在 Java 中,`>>`、`<<`、`>>>`、`<<<` 都是位运算符,用于对二进制数进行操作。它们的具体区别如下:
1. `<<` 左移运算符:将一个整数的二进制表示向左移动指定的位数,右边用 0 填充空缺的位。例如,`2 << 2` 的结果是 8,因为将 2 的二进制表示 10 向左移动 2 位,变成 1000,对应的十进制数是 8。
2. `>>` 右移运算符:将一个整数的二进制表示向右移动指定的位数,左边用原来的符号位填充空缺的位。例如,`-8 >> 2` 的结果是 -2,因为将 -8 的二进制表示 11111000 向右移动 2 位,变成 11111110,对应的十进制数是 -2。
3. `>>>` 无符号右移运算符:将一个整数的二进制表示向右移动指定的位数,左边用 0 填充空缺的位。注意,这种运算不考虑符号位,所以对于正数和负数的结果是不同的。例如,`-8 >>> 2` 的结果是 1073741822,因为将 -8 的二进制表示 11111111111111111111111111111000 向右移动 2 位,变成 00111111111111111111111111111110,对应的十进制数是 1073741822。
4. `<<<` 在 Java 中不存在这个运算符。
综上所述,`<<` 和 `>>` 是有符号的位运算符,`>>>` 是无符号的位运算符。
阅读全文