怎么用printf输出2个字节的十六进制数

 我来答
娱乐小八卦啊a
高粉答主

2020-04-05 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117842

向TA提问 私信TA
展开全部

char msg[]={0x01,0x02,0x03, 0x04};

for(i=0;i*2<3;i++)

{

printf("0x%02x%02x\n",msg[i*2],msg[i*2+1]);

}

printf 函数的原型为:

# include <stdio.h>

int printf(const char *format, ...);

扩展资料

printf 的格式有四种:

1、printf("字符串\n");

其中\n表示换行的意思。它是一个转义字符,前面在讲字符常量的时候见过。其中 n 是“new line”的缩写,即“新的一行”。

此外需要注意的是,printf 中的双引号和后面的分号必须是在英文输入法下。双引号内的字符串可以是英文,也可以是中文。

2、printf("输出控制符",输出参数);

如果是%x就是以十六进制的形式输出,要是%o就是以八进制的形式输出。

3、printf("输出控制符1 输出控制符2…", 输出参数1, 输出参数2, …);

因为上面 %d 和 %d之间有空格,printf 中双引号内除了输出控制符和转义字符\n外,所有其余的普通字符全部都原样输出。

风若远去何人留
2017-05-15 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450121
专业C/C++软件开发

向TA提问 私信TA
展开全部

要输出2个字节的16进制数,可以在printf中使用%02x或者%02X格式,同时将值转为unsigned char型。

一、printf为格式化输出函数,可以将变量以各种格式化方式输出。

二、格式化输出16进制的格式字符串为%x或%X。

当输出的16进制数带有字母a~f时,两种格式字符串输出结果会有区别:

1、%x格式,那么输出的是小写的a~f;

2、%X格式,那么输出的是大写的A~F.

三、要固定输出两个字节,可以使用%02x或者%02X,其中02的意思是,输出2个字节,不足补0. 不过如果实际值超过2字节,这个就会输出实际值了。

所以要绝对输出2字节,需要将数值转为unsigned char型,保证输出不会超过。

即将n以2字节16进制输出,写作:

printf("%02x",(unsigned char)n);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嗟謨
2016-11-06 · 超过24用户采纳过TA的回答
知道答主
回答量:151
采纳率:0%
帮助的人:47.2万
展开全部
int a;
printf("%16x",a);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式