首页 文章

使用逻辑和java [暂停]

提问于
浏览
0

我的问题可能是如此基本,但我仍然在问这个问题 . 我提到this post和我在逻辑 & 中理解的是按位和 0101 & 0011 = 0001 是否有任何用例可以在十进制数上应用 & ?例如,如果考虑逻辑 ^ (XOR),则在数组中查找唯一编号很有用,其中所有其他元素都出现两次 .

例如:如果你有一个数组 [1,1,2,2,3,3,4,4,6,6,7] ,你需要得到7

int[] x = new int[]{1,1,2,2,3,3,4,4,6,6,7};
    int y = x[0];
    for (int i = 1; i < x.length; i++) {
        y ^= x[i];
    }
    System.out.println(y);

这段代码会快速给出结果,同样在这样的用例中是否有 & 的用法?

1 回答

  • 1

    没有“应用和十进制数”这样的东西 . 数字值以二进制形式存储在计算机中 . 数值的默认打印是十进制格式,但这只是为了使它们具有人类可读性 .

    例如,对于 int 使用 & (逐位AND),当你有一个 int 位掩码(其中每个位代表一些东西)时,你可以使用逐位AND来确定任何特定位的值 .

    例如:

    int mask = 13;
    if (mask & 2 > 0) { // this tests if the 2nd lowest bit of mask is 1
    
    }
    if (mask & 4 > 0) { // this tests if the 3nd lowest bit of mask is 1
    
    }
    

相关问题