gpt4 book ai didi

c - 如何检查最后四位中的至少三位 (LSB) 是否打开

转载 作者:行者123 更新时间:2023-12-02 05:21:18 24 4
gpt4 key购买 nike

我尝试在 C 中这样做:

    int val = 0xCAFE;
int uc = val & 14;


if (val & 15 == 15 || val & 7 == 7 || val & 11 == 11|| val & 13 == 13 || val & 14 == 14){
printf("asdjfkadscjas \n");
}

然而,这并没有像它应该的那样打印随机字符串。它适用于 15、7、11、13。

如果有人知道更好的方法会有所帮助。我不擅长按位运算符。

谢谢

最佳答案

替代解决方案:您可以将所有数字放入二进制编码的查找表中:

int AtleastThreeBits (int a)
{
return (0xe880>>(a&15))&1;
}

魔数(Magic Number)的每一位代表一个答案。在常量 0xe880 中设置了位 7、11、13、14 和 15。您使用移位选择正确的位并将其屏蔽掉。

它不像您的解决方案那样可读,但速度更快..

关于c - 如何检查最后四位中的至少三位 (LSB) 是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054150/

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