比较并识别特定位置的位置和值并打印

Compare and Identify the location and value at particular position and print it

我在解决问题时卡住了,如下所示

假设我有两个变量 A=10010101 [正确的位值] & B=11001010 [需要与 A 比较的错误位值]

以上两个变量都是八位的,我需要比较从最高位到最后一位每个位置的值。我需要的是打印它们不相同的位置以及该位置的 correct/error 值应该是多少。

示例:对于 B,当我们与 A 的第 2 个位置的位值进行比较时,第二个位的位值应该为“0”。

我尝试使用 XOR 运算,但在那种情况下我没有在那个位置找到正确的值。另外我想让你知道,Bit A 的值是固定的,而 Bit B 的值是动态从设备中获得的。

感谢您抽出宝贵时间。

如果我没看错,你的逻辑应该是这样的:

ForEach elem in A 
    C[elem.index] = A XOR B

ForEach elem in C
    if elem == 1 
        print elem.index

只是比较位,如果它们不同,则打印索引和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.
}