购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.3 %x、%X、%#x、%#X的区别

一定要掌握%x(或%X或%#x或%#X),因为调试的时候经常要将内存中的二进制代码全部输出,然后用十六进制显示出来。下面写一个程序看看它们四个有什么区别:


/*
    时间:2014123019:00:21
    目的:测试%x%X%#x%#X的用法
*/
# include <stdio.h>
int main(void)
{
    int i = 47;
    printf("%x\n", i);    
    printf("%X\n", i);    
    printf("%#x\n", i);    
    printf("%#X\n", i);    
    return 0;
}
/*VC++6.0中的输出结果是:
--------------------------------------
2f
2F
0x2f
0X2F
--------------------------------------
*/

从输出结果可以看出:如果是小写的x,输出的字母就是小写的;如果是大写的X,输出的字母就是大写的;如果加一个“#”,就以标准的十六进制形式输出。最好是加一个“#”,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数呢!总之,不加“#”容易造成误解。但是如果输出0x2f或0x2F,那么人家一看就知道是十六进制。而且%#x和%#X中,笔者觉得大写的比较好,因为大写是绝对标准的十六进制写法。 yRWLcE5jZQL6Pl8sxi6lDz0s/qgj1h1Lu6Y658t1xdqXwTlUnbV5JDRx39W7pguJ

点击中间区域
呼出菜单
上一章
目录
下一章
×