gpt4 book ai didi

c - C 中的位操作?

转载 作者:行者123 更新时间:2023-11-30 21:25:29 24 4
gpt4 key购买 nike

如果word中的所有偶数位都设置为1,我必须返回1。对我来说,问题是我只能使用像+ , >> , <<, |, ^, ~ , !这样的逻辑运算符。 。否if'sfor循环。我想我想用 0x55555555 来掩盖它但这就是我陷入困境的地方。假设这是 32bit

最佳答案

对于 32 位字:

#include <stdint.h>

int allBitEven(uint32_t x)
{
return ( !((x & 0x55555555)^0x55555555) );
}

由于我正在研究这个问题,我提出了另一个函数,它可以仅通过逻辑运算来验证所有位是否为奇数或所有位是否为偶数:

int allBitEvenOrOdd(uint32_t x, int odd)
{
return ( !((x & (0x55555555<<odd))^(0x55555555<<odd)) );
}

如果 odd 为 1,则验证所有位是否为奇数,如果 odd 为 0,则验证所有位是否为偶数!

关于c - C 中的位操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724388/

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