unsigned char xor4(unsigned char c1, unsigned char c2){
int i = 0;
while(i < 8){
if((getBit(c1, i) ^ getBit(c2, i)))
setBit(c1,i);
else clearBit(c1, i);
i+=2;
}
return c1;
}
上面的代码应该是一个非常简单的函数,它根据与第二个字符中的每隔一个位进行异或的结果来设置一个字符中的每隔一个位。出于某种原因,这根本行不通。该程序似乎只是忽略了我的 while 循环并返回原始函数。
哦,这是我的 getBit、setBit 和 clearBit 函数。
unsigned char getBit(unsigned char c, int n){
return (c & 1<<n) >> n;
}
unsigned char clearBit(unsigned char c, int n){
c = c & (~(1<<n));
}
unsigned char setBit(unsigned char c, int n){
`c = c | (1<<n);
}