位操作在 java 中的应用

本贴最后更新于 2127 天前,其中的信息可能已经水流花落
符号 描述 运算规则
&
|
^ 异或 两个位相同为 0,相异为 1
~ 取反
<< 左移 各二进位全部左移若干位,高位丢弃,低位补 0
>> 右移 各二进位全部右移若干位,对无符号数,高位补 0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补 0(逻辑右移)

注意

  1. 位操作只能用于整形数据,对 float 和 double 类型进行位操作会被编译器报错
  2. 位操作符的运算优先级比较低,因为尽量使用括号来确保运算顺序

在 Java 中应用

判断奇偶

只要根据最未位是 0 还是 1 来决定,为 0 就是偶数,为 1 就是奇数。因此可以用 if ((a & 1) == 0)代替 if (a % 2 == 0)来判断 a 是不是偶数

交换两数

a ^= b; 
b ^= a; 
a ^= b;

变换符号

变换符号就是正数变成负数,负数变成正数,只需要取反后加 1 即可:~a + 1

求绝对值

int my_abs(int a)  { 
  int i = a >>  31;  
  return  ((a ^ i)  - i); 
}

求 2 的 3 次方

2<<(3-1)
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...