我想知道是否有人能帮我,我只是学习c,如果我使用了不正确的术语,我会提前道歉我试图实现一个算法,但我有一个问题,在一个特定的部分,有一个检查比较位序列。
算法声明此检查。
但似乎找不到如何实现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/