我有一个简单的程序:
#include <stdio.h>
int main()
{
long i = 16843009;
printf ("%02x \n" ,i);
}
我使用%02x
格式说明符来获得2个字符的输出,但是,我得到的输出是:
1010101
而我期待的是:01010101
。
发布于 2013-08-26 15:38:09
%02x
的意思是至少打印2位,如果打印的位数少于2位,就在前面加上0
's。在你的例子中是7位,所以前面不会有额外的0
。
另外,%x
代表整型,但是你有一个长整型。请尝试使用%08lx
。
发布于 2017-11-03 14:13:25
%x
是格式化和输出十六进制值的格式说明符。如果您提供的是int或long值,它会将其转换为十六进制值。
%02x
表示如果您提供的值小于两位数,则会将0
放在前面。
您提供了值16843009
,它已被转换为十六进制值1010101
。
发布于 2013-08-26 15:37:17
您的字符串比格式宽度2更宽,所以不需要填充。
https://stackoverflow.com/questions/18438946
复制相似问题