比较并识别特定位置的位置和值并打印
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.
}
我在解决问题时卡住了,如下所示
假设我有两个变量 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.
}