我陷入了解决问题的困境,如下所示
假设我有两个变量A = 10010101 [正确位值]& B = 11001010 [错误位值需要与A进行比较]
以上两个变量是8位,我需要比较每个位置的值,从最高位到最后一位。我需要的是打印它们不相同的位置以及该位置的正确/错误值。
示例:对于B,当我们将位置2的位值与A进行比较时,第二个位置位值应为“0”。
我尝试使用XOR操作但在那种情况下我没有在该位置找到正确的值。另外,我想告诉您,位A值是固定的,位B值是从设备动态生成的。
感谢您宝贵的时间。
答案 0 :(得分:0)
如果我找对你,你的逻辑应该是这样的:
ForEach elem in A
C[elem.index] = A XOR B
ForEach elem in C
if elem == 1
print elem.index
答案 1 :(得分:0)
只需比较位,如果它们不同,则打印索引和A中的相应位。
for(i=0 to sizeof(A))
{
tempA = A & (1 << i); //Get ith bit of A
tempB = B & (1 << i); //Get ith bit of B
if(tempA != tempB ) //Check if they are same.
printf(i, tempA); //If they are different, print position and correct value.
}