【问题标题】:Usage of Logical & in java [closed]java中逻辑&的用法[关闭]
【发布时间】:2019-05-11 02:20:57
【问题描述】:

我的问题可能很基本,但我仍然在问这个。我引用了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);

这段代码会很快给出结果, 同样,在这些用例中是否有任何 &amp; 的用法?

【问题讨论】:

  • 很难弄清楚你在这里问什么。您询问十进制数字,但您的示例使用int(不是doublefloat)。您链接到 C# 问题而不是 Java 问题。 (它们是不同的语言,语义重叠,但并不相同。)但只是对术语的快速说明:&amp;|^逻辑运算符,除非它们应用于 boolean (spec)。当应用于其他类型时,它们是 bitwise 运算符。

标签: java


【解决方案1】:

没有“在十进制数上应用 &”这样的东西。数值以二进制形式存储在计算机中。数值的默认打印是十进制格式,但这只是为了使它们易于阅读。

例如对于在ints 上使用&amp;(按位与),当您有一个int 位掩码(其中每个位代表某物)时,您可以使用按位与来确定任何特定位的值。

例如:

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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多