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