java - java中的按位逻辑运算符

标签 java reverse bitwise-operators

我正在尝试反转 a,但出了问题。

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]);**

输出是:

 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"
};

初级:您错过了一个二进制值。以更明显的模式排序会有所帮助。

关于java - java中的按位逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297002/

相关文章:

java - 左移丢失的信息是否存储在Java中的某个地方?

C:计算正位的偷偷摸摸的方法?

java - Maven中的依赖jar文件列表

没有属性文件的 Java EE i18n

python - python中列表的反向数字排序

arrays - 在不到 O(n) 的时间内反转数组的子数组

java - 使用 url 在 android textview 中定义新方案

java - 验证重复条目后插入按钮不起作用

android - RecyclerView 在插入时滚动

sql - 按位运算符 Postgres