我被困在解决问题上,如下所示
假设我有两个变量a = 10010101 [正确的位值]&B = 11001010 [需要将其与A]
进行比较的错误位值上面的两个变量为八位,我需要比较从最重要位到最后位的每个位置的值。我需要的是打印它们不完全相同的位置,以及该位置的正确/错误值。
示例:对于b,当我们将a。
的位置值与位置第二位比较时,第二个位置值应为" 0"。我尝试使用XOR操作,但是在这种情况下,我在该位置没有找到正确的值。另外,我想让您知道一个位值是固定的,位B值动态形成设备。
感谢您的宝贵时间。
只是比较位,如果它们不同,请打印索引,并从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.
}
如果我让你正确,那么您的逻辑应该是这样:
ForEach elem in A
C[elem.index] = A XOR B
ForEach elem in C
if elem == 1
print elem.index