c语言中以16进制输出时%0x和%x有什么区别?

 我来答
White_MouseYBZ
推荐于2017-10-13 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6564万
展开全部

%0x和%x都是以十六进制格式右对齐输出,输出的是无符号数。

    在不指定占宽情况下以数据的实际宽度输出,而系统又自动消除左端的无效0,所以%0x和%x在显示效果上没有什么不同。

    在指定占宽的情况下,在指定的输出占宽范围内,实际数据宽度不足时用%0x作控制的前面用0补齐,而用%x作控制的前面用空格补齐。如:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    int a=0x37;
    printf("%04X\n%4X\n",a,a);
    return 0;
}

输出是:

0037

    37

若实际数据宽度大于指定宽度,则按实际宽度输出。



匿名用户
2013-03-29
展开全部
标准C语言库函数fprintf/printf格式字符串的转换说明形式是这样的:

%[标志][最小输出宽度][.精度][长度修正符]类型
方括号括起来是可选项。

标志是0或多个标志字符,可以是任意顺序,常用有以下几个:
- 左对齐,缺省是右对齐。
+ 带符号的值前面总是有个符号,也就是正数前面有+号,负数前面有-号。
0 输出值的宽度小于最小宽度的话,用0填充,缺省是用空格填充。

0是一个标志字符,意思就是用0填充
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2013-03-29 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3699万
展开全部
char x=5;

printf("%x\n",x);得到输出5
printf("%0x\n",x);得到输出05
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨大9
2013-03-27
知道答主
回答量:31
采纳率:0%
帮助的人:6.7万
展开全部
你编程试试不就知道了吗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式