本帖最后由 icefire1214 于 2014-6-7 14:07 编辑
试着输入输出几次,我把我的想法写下来。
- int i;
- scanf("%d",&i);
- printf("%x\n",i);
复制代码
运行结果:输入50,输出32;
结论,用printf输出不会加0x,系统按照代码设定的输出格式输出了,写这个代码的程序员也当然知道这个数字是什么格式的,所以没必要加0x;
- int i;
- scanf("%x",&i);
- printf("%d",i);
复制代码
运行结果:输入32,输出50;
结论:不用加0x,输入格式是%x,所以程序会知道键入的32是16进制数,当输出用%d时,就会转成10进制数,所以输出50;
总结:例如%x%d%0这些格式符就是决定了你输入的数字是什么进制的,然后转成16进制数存进内存。而在输出的时候也是按照相应的格式输出出来,不需要再数字前边加0x或0来区分。。。。他们的作用是在平时书写时便于人与人之间交流。比如,我给你说一个数字32,一般默认都为10进制,但是我写成0x32,你就知道这个是16进制数,换成10进制是50;至于H,也是书面表示时使用。
|