今天发现printf函数和cout对整数常量的处理是不一样的,简单说来printf将整数常量当成有符号数处理(int),cout却当成无符号数处理(unsigned int),可以从以下代码得出结论:
int i = 0x98765432;
printf("%d %d/n", i, 0x98765432);
cout << i << " " << 0x98765432 << endl;
打印结果:
可见,cout将常量按无符号数打印。
今天发现printf函数和cout对整数常量的处理是不一样的,简单说来printf将整数常量当成有符号数处理(int),cout却当成无符号数处理(unsigned int),可以从以下代码得出结论:
int i = 0x98765432;
printf("%d %d/n", i, 0x98765432);
cout << i << " " << 0x98765432 << endl;
打印结果:
可见,cout将常量按无符号数打印。