c语言中以16进制输出时%0x和%x有什么区别?
4个回答
展开全部
%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填充
%[标志][最小输出宽度][.精度][长度修正符]类型
方括号括起来是可选项。
标志是0或多个标志字符,可以是任意顺序,常用有以下几个:
- 左对齐,缺省是右对齐。
+ 带符号的值前面总是有个符号,也就是正数前面有+号,负数前面有-号。
0 输出值的宽度小于最小宽度的话,用0填充,缺省是用空格填充。
0是一个标志字符,意思就是用0填充
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char x=5;
printf("%x\n",x);得到输出5
printf("%0x\n",x);得到输出05
printf("%x\n",x);得到输出5
printf("%0x\n",x);得到输出05
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询