我想使用线性反馈移位寄存器来混淆字符串,所以我试图理解下面的wiki代码 在下面的线性反馈移位寄存器的wiki示例中,“ 0xACE1u ”是用作起始状态的十六进制值,但我不明白这个0xB400u是什么?
有人可以解释一下那是什么吗?任何解释如何使用 LFSR 来混淆字符串的链接将不胜感激
int main(void)
{
uint16_t start_state = 0xACE1u; /* Any nonzero start state will work. */
uint16_t lfsr = start_state;
unsigned period = 0;
do
{
unsigned lsb = lfsr & 1; /* Get LSB (i.e., the output bit). */
lfsr >>= 1; /* Shift register */
if (lsb) { /* If the output bit is 1, apply toggle mask. */
lfsr ^= 0xB400u;
}
++period;
} while (lfsr != …Run Code Online (Sandbox Code Playgroud)