Java算术与移位操作符实战指南
2026/9/13 3:08:40 网站建设 项目流程

Java操作符进阶:算术与移位操作符解析

一、算术操作符

Java的算术操作符用于基本数学运算:

int a = 10, b = 3; System.out.println(a + b); // 13 System.out.println(a - b); // 7 System.out.println(a * b); // 30 System.out.println(a / b); // 3 (整数除法截断) System.out.println(a % b); // 1 (取模)

注意点

  1. 整数除法会丢弃小数部分
  2. 取模运算结果符号与被除数一致
  3. 浮点数运算存在精度问题:
    double c = 0.1, d = 0.2; System.out.println(c + d); // 0.30000000000000004
二、移位操作符

移位操作符直接操作二进制位:

  1. 左移(<<)
    低位补0,相当于乘2的n次方

    int x = 8; // 二进制: 1000 System.out.println(x << 2); // 32 (二进制: 100000)
  2. 带符号右移(>>)
    高位补符号位,相当于除2的n次方(向下取整)

    int y = -8; // 111...1000 (补码) System.out.println(y >> 2); // -2 (保留符号位)
  3. 无符号右移(>>>)
    高位补0,无符号处理

    int z = -8; System.out.println(z >>> 2); // 1073741822 (高位补0)
三、综合应用
// 快速乘2的幂次 int num = 7; int doubled = num << 1; // 14 // 提取特定位 int flags = 0b1101; int thirdBit = (flags >> 2) & 1; // 1 // 高效实现2^n int power = 1 << 10; // 1024
四、注意事项
  1. 移位超过数据类型长度时,实际位移数为n % 32(int)或n % 64(long)
  2. 浮点数不能直接使用移位操作符
  3. 复合赋值操作符(如<<=)可提升代码简洁性

重要公式

  • 左移等价乘法:$$ a << n = a \times 2^n $$
  • 右移等价除法:$$ a >> n = \lfloor a / 2^n \rfloor $$

通过深入理解位操作,可显著提升算法效率和底层控制能力。建议通过二进制转换工具验证实际位变化。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询