为了账号安全,请及时绑定邮箱和手机立即绑定

在C中打印十六进制字符

在C中打印十六进制字符

C
qq_遁去的一_1 2019-07-30 15:34:03
在C中打印十六进制字符我正在尝试读取一行字符,然后打印出字符的十六进制等效字符。例如,如果我有一个字符串,"0xc0 0xc0 abc123"前两个字符是c0十六进制,其余字符是abc123ASCII,那么我应该得到c0 c0 61 62 63 31 32 33但是,printf使用%x给了我ffffffc0 ffffffc0 61 62 63 31 32 33如何在不使用的情况下获得我想要的输出"ffffff"?为什么只有c0(和80)有ffffff,但没有其他字符?
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

实际上,有类型转换为int。您还可以使用%hhx说明符强制类型为char。

printf("%hhX", a);

在大多数情况下,您还需要设置最小长度以使用零填充第二个字符:

printf("%02hhX", a);

ISO / IEC 9899:201x说:

7长度修饰符及其含义为:hh指定以下d,i,o,u,x或X转换说明符适用于signed char或unsigned char参数(该参数将根据整数提升进行提升,但在打印前,其值应转换为有符号字符或未签名字符); 或者说是以下


查看完整回答
反对 回复 2019-07-30
  • 1 回答
  • 0 关注
  • 2492 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信