繁体   English   中英

Java中的按位逻辑运算符

[英]bitwise logical operators in java

我正在尝试取反,但是出了点问题。

String binary[]={
        "0000","0001","0010","0011","0100","0101",
        "0110","0111","1000","1001","1010","1100",
        "1101","1110","1111"
    };
    int a=3;
    int b=6;
    int c=a|b;
    int d=a&b;
    int e=a^b;
    int f=(~a &b) | (a&~b);
    int g= ~a & 0x0f;

    System.out.println(" a="+binary[a]);
    System.out.println(" b="+binary[b]);
    System.out.println(" a|b="+binary[c]);
    System.out.println(" a&b="+binary[d]);
    System.out.println(" a^b="+binary[e]);
    System.out.println(" ~a&b|a&~b="+binary[f]);
    System.out.println(" ~a="+binary[g]);**

otput是:

 a=0011
 b=0110
 a|b=0111
 a&b=0010
 a^b=0101
 ~a&b|a&~b=0101
 ~a=1101

最后一个是错误的.a的反向必须是1100.我在做什么错?

String binary[]={
    "0000","0001","0010","0011",
    "0100","0101","0110","0111",
    "1000","1001","1010","1011",
    "1100","1101","1110","1111"
};

初级:您错过了一个二进制值。 以更明显的方式订购有助于。

您的二进制字符串不正确,移位是正确的,这是二进制字符串的正确数组:

String binary[]={
            "0000","0001","0010","0011","0100","0101",
            "0110","0111","1000","1001","1010","1011",
            "1100","1101","1110", "1111"
    };

并用您的代码输出:

a=0011
b=0110
a|b=0111
a&b=0010
a^b=0101
~a&b|a&~b=0101
~a=1100

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM