Java操作符之按位操作符

按位操作符及位运算符是对二进制位的操作,即对两个参数对应的位执行布尔代数运算。

  1. “与”操作符 &
    两个输入位都为1,则生成一个输入位 1,否则生成一个输入为0
  2. “或”操作符 |
    两个输入位中有一个为1,则生成一个输入位1。只有在两个输入位都为0的时候生成一个输入位0
  3. “异或”操作符 ^
    当两个输入位相同时,生成一个输入位1,两个输入位不同时,生成一个输入位0
  4. “非”操作符 ~
    非 操作符也称为取反操作符,为一元操作符,按位非操作符生成与输入位相反的值,也就是说当输入位为1时输出0,当输入位为0时输出1


public class ByteOperaTest {

public static void main(String[] args) {
    // 1010 1010 1010
    int a = 0xaaa;
    // 0101 0101 0101
    int b = 0x555;

    System.out.println("a byte is " + Integer.toBinaryString(a));
    System.out.println("b byte is " + Integer.toBinaryString(b));

    int c = a&b;
    System.out.println("c byte is " + Integer.toBinaryString(c));

    int d = a|b;
    System.out.println("d byte is " + Integer.toBinaryString(d));

    int e = a^b;
    System.out.println("e byte is " + Integer.toBinaryString(e));

    int f = ~a;
    System.out.println("f byte is " + Integer.toBinaryString(f));
    System.out.println("f int is " + f);

    int g = ~b;
    System.out.println("g byte is " + Integer.toBinaryString(g));
    System.out.println("g int is " + g);

}

输出为:
a byte is 101010101010
b byte is 10101010101
c byte is 0
d byte is 111111111111
e byte is 111111111111
f byte is 11111111111111111111010101010101
f int is -2731
g byte is 11111111111111111111101010101010
g int is -1366

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值