- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图找到一个位串的奇偶校验,如果 x 有奇数个 0,它会返回 1。
我只能使用基本的按位运算,到目前为止我已经通过了大部分测试,但我想知道两件事:
为什么 x ^ (x + ~1) 有效?我偶然发现了这一点,但如果有奇数位,它似乎给你 1,如果有偶数,它似乎给你其他东西。喜欢 7^6 = 1 因为 7 = 0b0111
这是解决问题的正确方向吗?我假设我的问题源于第一个操作,特别是 (x + ~1) 因为它会溢出某些 2 的补码。谢谢
代码:
int bitParity(int x) {
int first = x ^ (x + ~1);
int second = first ^ 1; // if first XOR gave 1 you'll return 0 here
int result = !!second;
return result;
}
最佳答案
据我所知,你的奇偶校验函数实际上并没有起作用——它似乎在大约一半的时间内得到了正确的答案,这与返回一个随机结果(或者甚至只返回 0 或 1 所有时间)。
有几个位级黑客确实实际工作于:http://graphics.stanford.edu/~seander/bithacks.html#ParityNaive - 你可能想看看最后一个:http://graphics.stanford.edu/~seander/bithacks.html#ParityParallel
关于c - 奇数位的位奇偶校验码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530599/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
这个测试行得通吗?: if (testInt/2).ofType(Integer){ //to-do if even } 我假设它会 iff 编译器在 ofType() 之前解析 testIn
我正在尝试更好地排列图像,而不仅仅是 1 列中的图像。示例见附件,每篇文章的图片可以在左右。 这是我的代码。HTML: Content 1
我有一个看起来像这样的定义: Title Entry Entry Entry Title Entry Title Entry Entry Title E
我是一名优秀的程序员,十分优秀!