n=52145,用16进制输出c^d的结果时前面出现4个f,请问是什么原因和如何解决呢?
#include
using namespace std;
int main()
{
int n,d;
int c=074120;
cin>>n;
d=~n;
printf("%x",c^d);//预期结果:4c1e,实际结果:ffff4c1e
return 0;
}
在网上查了一下后,定义了一个unsigned char y,令y=c^d后printf("%x",y),输出结果变为了1e,请问是什么原因,该如何解决呢?
如果你只想输出低16位结果,那么把int
改为short