Tag: 奇偶校验

甚至无符号整数的奇偶校验

/*A value has even parity if it has an even number of 1 bits. *A value has an odd parity if it has an odd number of 1 bits. *For example, 0110 has even parity, and 1110 has odd parity. *Return 1 iff x has even parity. */ int has_even_parity(unsigned int x) { } 我不知道从哪里开始编写这个函数,我认为我将值作为数组循环并对它们应用xor操作。 […]

如何使用C判断数字的二进制表示中是否有1?

已经存在关于计算一个数中有多少1 s的问题,但这个问题是关于判断是否存在偶数或奇数的1。 不允许任何循环或条件(包括switch)语句。 此外,应避免使用除法,乘法或模数运算符。 更具体地说,我们可以假设它是一个32位无符号整数。 实际上我已经有了一个实现,但我无法弄清楚它的工作原因。 任何certificate其正确性或任何新想法都会非常有帮助。 int even_ones(unsigned x) { x ^= x>>16; x ^= x>>8; x ^= x>>4; x ^= x>>2; x ^= x>>1; return !(x & 1); }