【发布时间】:2018-05-05 01:07:37
【问题描述】:
应用密码学书籍中的这段 c 代码无法编译
int LFSR () {
static unsigned long ShiftRegister = 1;
/* Anything but 0. */
ShiftRegister = ((((ShiftRegister >> 31)
^ (ShiftRegister >> 6)
^ (ShiftRegister >> 4)
^ (ShiftRegister >> 2)
^ (ShiftRegister >> 1)
^ ShiftRegister))
& 0×00000001)
<< 31)
| (ShiftRegister >> 1) ;
return ShiftRegister & 0×00000001;
}
而且上面没有明显的错误
【问题讨论】:
-
您是从网页还是从 Microsoft word 之类的东西粘贴的? stackoverflow.com/questions/22384338/…非常仔细地看那个不是x的x...
0×00000001 -
当您从电子资源(Web、PDF 或其他)复制/粘贴代码时,您必须小心您看到的字符就是您得到的字符。在这种情况下,FBergo 是对的:“x”不是字母“x”,而是 Unicode 乘法符号。
-
注:\327 == 215 = 0xD7
-
感谢大家提供有用的反馈,因此线程中提到的 Unicode 有两个错误和缺少括号