JAVA的位运算符

java支持对整型(char、short、int、long)数据直接进行位操作运算,已提高运算效率。
逻辑位运算符

与位运算符& ,使用示例:a = b & c;
或位运算符| ,使用示例:a = b | c;
取反运算符~,使用示例: a = ~b; 两次取反数据可以还原
异或运算符^,使用示例:a = b ^ c; 两次异或同一个数可以还原数据,该特性可以加密图片

移位运算符

左移运算符<<,将全部二进制位向左移动若干位,高位丢弃,低位补0
 
右移运算:
算术右移运算符>>,将全部二进制位向右移动若干位,低位丢弃,高位补最高位
逻辑右移运算符>>>,将全部二进制位向右移动若干位,低位丢弃,高位补0;
右移运算符正数的两种结果是一致的,负数结果最高位补齐的方法的差异导致结果不一样。

位运算操作示例代码

public void printBitOperator() {
  int a = 0xa9a9a9a9;
  int b = 0x5a5a5a5a;

  //10101001 10101001 10101001 10101001	
  System.out.println(Integer.toBinaryString(a)); 
  //10100110 10100110 10100110 101001 00
  System.out.println(Integer.toBinaryString(a<<2));
  //11 101010 01101010 01101010 01101010
  System.out.println(Integer.toBinaryString(a>>2));
  //00 101010 01101010 01101010 01101010
  System.out.println(Integer.toBinaryString(a>>>2));
  
  //01011010 01011010 01011010 01011010
  System.out.println(Integer.toBinaryString(b));
  //01101001 01101001 01101001 011010 00
  System.out.println(Integer.toBinaryString(b<<2));
  //00 010110 10010110 10010110 10010110
  System.out.println(Integer.toBinaryString(b>>2));
  //00 010110 10010110 10010110 10010110
  System.out.println(Integer.toBinaryString(b>>>2));
}

public void exchangeNum() {
  int a = 10;
  int b = 11;
  //中间变量交换两个数的值,优点代码通俗易懂,缺点需要引入新的变量
  int temp = a;
  a = b;
  b = temp;
  //相加法交换两个数,一般不推荐用,两数相加时存在溢出的可能,溢出会丢失数据精度
  a = a + b;
  b = a - b;
  a = a - b;
  //异或法交换两个数,优点是操作效率高,不需要引入新的变量,缺点代码逻辑不清晰,只能操作整型数据
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值