gpt4 book ai didi

java - 有没有java内置方法来获取整数的奇偶校验?

转载 作者:行者123 更新时间:2023-11-30 05:31:30 28 4
gpt4 key购买 nike

我正在上位操作类(class)。我发现了 C++ 内置函数,例如 __builtin_clz()__builtin_popcount()__builtin_parity()。我得到了设置位和尾随零的所有替代 java 方法。对于奇偶校验,我没有找到任何方法。

我做了这样的事情。

int val = 0b100011;
System.out.println(Integer.bitCount(val)%2==0?"Even":"ODD");

有什么有效的方法可以做到这一点吗?

最佳答案

没有内置方法来获取整数的奇偶校验。

我不确定你所说的高效是什么意思,但就时间复杂度而言,你的解决方案是O(1)

另一个solution是使用类似这样的东西,它也是恒定的时间复杂度(取自上面的链接,但也类似于书 Hacker's Delight ):

static boolean hasEvenParity(int x) 
{
int y = x ^ (x >> 1);
y = y ^ (y >> 2);
y = y ^ (y >> 4);
y = y ^ (y >> 8);
y = y ^ (y >> 16);

// Rightmost bit of y holds the parity value
// if (y&1) is 1 then parity is odd else even
return (y & 1) == 0;
}

关于java - 有没有java内置方法来获取整数的奇偶校验?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442996/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com