我想知道是否有人能帮我,我只是学习c,如果我使用了不正确的术语,我会提前道歉我试图实现一个算法,但我有一个问题,在一个特定的部分,有一个检查比较位序列。
算法声明此检查。
c - 从无符号长c获得序列位-LMLPHP
但似乎找不到如何实现if语句部分的示例。

        unsigned long zprime   = 2501328903
        unsigned long q0XORq1  = 3736417748;

        if ( q0XORq1 == zprime )
        {

        }

所以我想比较q0xorq1的8到23位和zprime的8到23位

最佳答案

您可以使用位掩码来执行此操作,因此基本上您定义了一个掩码,它将位8-23设置为“1”,其余的设置为“0”,然后对值和此掩码使用and(&)运算符来忽略所有其他部分,例如:

unsigned long zprime   = 2501328903
unsigned long q0XORq1  = 3736417748;

if ( (q0XORq1 & 0xFFFF00) == (zprime & 0xFFFF00) )
{

}

我建议学习C语言中的所有操作符,在这里你有一个很好的开始:
https://www.tutorialspoint.com/cprogramming/c_operators.htm

关于c - 从无符号长c获得序列位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41025831/

10-12 23:11