【发布时间】:2016-03-23 17:39:35
【问题描述】:
这是代码的一部分。在这里,我想通过 xor 比较数字。 所以它应该给出“0111”,但结果是“111”。 我该如何解决? 所以它应该给出“0111”,但结果是“111”。 我该如何解决?
1 and 1 = 0
1 and 0 = 1
0 and 1 = 1
0 and 0 = 0
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int BinaryRepForDisk1=1101, BinaryRepForDisk2=1010, Disk3=0, xor1, xor2, power=0;
while(BinaryRepForDisk1!=0)
{
xor1=BinaryRepForDisk1%2;
xor2=BinaryRepForDisk2%2;
if(xor1==xor2)
{
Disk3=Disk3+pow(10,power)*0;
power++;
}
else
{
Disk3=Disk3+pow(10,power)*1;
power++;
}
BinaryRepForDisk1=BinaryRepForDisk1/10;
BinaryRepForDisk2=BinaryRepForDisk2/10;
}
printf("%d",Disk3);
system("pause");
return 0;
}
【问题讨论】:
-
int BinaryRepForDisk1=1101-- 这不是二进制表示的数字。是一千一百零一。 -
111和0111相等。 -
@jadhachem:嗯……不!
-
是的,但认为它是二进制的
-
对不起,我是新人
标签: c