- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不完全理解这种计算奇偶校验位的算法。
有人可以详细解释一下吗?
以下代码摘自《黑客的喜悦》一书:
int parity(unsigned x) {
unsigned y;
y = x ^ (x >> 1);
y = y ^ (y >> 2);
y = y ^ (y >> 4);
y = y ^ (y >> 8);
y = y ^ (y >>16);
return y & 1;
}
最佳答案
先说点理论。
S1
中计算出来。 , S2
使得 S
=
S1 UNION S2
使用异或:P(S) = P(S1) ^ P(S2)
.实际上:S1
和 S2
具有相同的奇偶性,即它们都有偶数位或奇数位,它们的并集 S
将有偶数位。 S1
和 S2
有不同的奇偶校验,S 将有奇数位。 unsigned int
有 32 位:它通过将位分组为两位(两个相邻位)的子集中的位开始“递归地”计算奇偶校验,然后对这些子集执行奇偶校验。然后它通过使用刚刚计算的 2 位子集的奇偶校验来检查下一个更大的 4 位组的奇偶校验。然后继续处理 8 位和 16 位子集。
y = x ^ (x >> 1)
Pn-m
表示位置来自
m
的一组位的奇偶校验至
n
.由于我们必须使用不相交的子集计算奇偶校验,因此我们只使用其中两个奇偶校验值中的一个,我将用
?
标记其他奇偶校验值。意味着它们没有意义。所以我们有:
y = y ^ (y >> 2)
(考虑到更多的高阶位)
P5-2
,
P9-6
等,从而得到:
y = y ^ (y >> 4)
(考虑到更多的高阶位)
?
分组以提高可读性):
y = y ^ (y >> 8)
(考虑到所有 32 位):
y = y ^ (y >> 16)
return y & 1
P31-0
对于参数的位
x
,这就是我们想要的。
关于bit-manipulation - 计算奇偶校验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350906/
http://opencv-code.com/quick-tips/implementation-of-guo-hall-thinning-algorithm/ 在看郭霍尔算法,但我不明白它说的那部分
我知道这个方法检查整数是否为偶数,但是具体如何检查呢?我理解斐波那契或阶乘等例子的递归是如何工作的,但不理解这个。我认为由于语法原因我不明白。 // Assume n >= 0 public stat
我被困在一个作业上,需要程序接受多个数字,然后如果是奇数则输出"is",如果是偶数则输出“否”,并且不知道如何让程序接受超过 1 个 int,然后输出正确的 println。这是我到目前为止的代码。
这个测试行得通吗?: if (testInt/2).ofType(Integer){ //to-do if even } 我假设它会 iff 编译器在 ofType() 之前解析 testIn
我正在尝试更好地排列图像,而不仅仅是 1 列中的图像。示例见附件,每篇文章的图片可以在左右。 这是我的代码。HTML: Content 1
DAY16共3题: 奇♂妙拆分(简单数学) 区区区间间间(单调栈) 小AA的数列(位运算dp) 🎈 作者:Eriktse 🎈 简介:19
我是一名优秀的程序员,十分优秀!