Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过取消设置最右边的位来计算奇偶校验_Java_Python_C_Binary_Parity - Fatal编程技术网

Java 通过取消设置最右边的位来计算奇偶校验

Java 通过取消设置最右边的位来计算奇偶校验,java,python,c,binary,parity,Java,Python,C,Binary,Parity,计算奇偶校验的第一种方法是对每一位进行异或运算这很容易理解。 对此的一个增强是降低低位并保持奇偶校验倒置,直到数字变为0 即 这是怎么回事?我想,掌握这种方法的思想要困难一些。因此,一旦你知道了什么是数字&=number-1,那么做这个问题就很简单了。下面是一个二进制示例: first pass 1001001 - 1 = 1001000 1001001 & 1001000 = 1001000 second pass 1001000 - 1 = 1000111 1001000 &am

计算奇偶校验的第一种方法是对每一位进行异或运算这很容易理解。 对此的一个增强是降低低位并保持奇偶校验倒置,直到数字变为0 即

这是怎么回事?我想,掌握这种方法的思想要困难一些。

因此,一旦你知道了什么是数字&=number-1,那么做这个问题就很简单了。下面是一个二进制示例:

first pass
1001001 - 1 = 1001000
1001001 & 1001000 = 1001000 

second pass
1001000 - 1 = 1000111
1001000 & 1000111 = 1000000

third pass
1000000 - 1 = 111111
1000000 & 111111 = 0
请注意,将数字变为零所需的过程数与设置位数相等,因为每次过程中删除一个设置位。奇偶校验是模2的集合位的数目或总和。模2加法是xor运算,因此在算法中使用xor来查找奇偶校验。

因此,一旦你知道什么是数字&=number-1,那么做这个问题就很简单了。下面是一个二进制示例:

first pass
1001001 - 1 = 1001000
1001001 & 1001000 = 1001000 

second pass
1001000 - 1 = 1000111
1001000 & 1000111 = 1000000

third pass
1000000 - 1 = 111111
1000000 & 111111 = 0

请注意,将数字变为零所需的过程数与设置位数相等,因为每次过程中删除一个设置位。奇偶校验是模2的集合位的数目或总和。模2加法是xor运算,因此在算法中使用xor来查找奇偶校验。

您只是使用两个补码的技巧重复提取底部集合位。对于稀疏数,这只会更快。您只需使用两个补码技巧重复提取底部集合位。这只对稀疏数更快。太棒了!谢谢,明白了。数字-1取消设置最右边的1位和按位and运算。。关闭其他较低的位使这个过程逐条关闭1位非常好!谢谢,明白了。数字-1取消设置最右边的1位和按位and运算。。关闭其他较低的位,使此过程逐字关闭1位