1、用c语言实现奇偶校验
unsigned int v; // 待检测的数字 bool parity = false; //初始判断标记 while (v) { parity = !parity; v = v & (v - 1); }2、通过构建字典表进行奇偶校验:
static const bool ParityTable256[256] =
{
# define P2(n) n, n^1, n^1, n
# define P4(n) P2(n), P2(n^1), P2(n^1), P2(n)
# define P6(n) P4(n), P4(n^1), P4(n^1), P4(n)
P6(0), P6(1), P6(1), P6(0)
};
通过嵌套宏定义,制作一张包括0~255各个数字中包含1的个数,其中包含偶数个1,则ParityTable256[i]=0,否则ParityTable256[i]=1;
如果要判定char类型的b中i的个数的奇偶,可以直接使用下面的代码:
unsigned char b;
bool parity = ParityTable256[b];
而对于32-bit的数,则使用下面的代码:
unsi