printf输出十六进制数

xqlez 2004-10-15 09:20:57
用printf,十六进制数怎样按4,4格式输出
例如:
0x10002000
输出:
1000 2000
...全文
25616 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leaveye 2004-10-17
  • 打赏
  • 举报
回复
就你的要求来说,用printf是最简单的办法。

要复杂也可以,可以加对大整数进行处理,可以分段进行处理。那就没必要了。
较为通用点的方法可以这样:
char * Last4Hex(unsigned int Num, char a[5])
{
sprintf(a, "%04X", Num);
return a;
}

main()
{
unsigned long num = 0x00102000;
char a[5], b[5];
printf(
"%s %s\n",
Last4Hex(num >> 0x10, a),
Last4Hex(num, b)
);
}
cnxiaohai 2004-10-16
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
char str[50];
long int a=0x10002000;
int i;
printf("a=%lx\n",a);
sprintf(str,"%lx",a);
for(i=1;*(str+i-1)!='\0';i++)
{
printf("%c",*(str+i-1));
if(i%4==0)
printf(" ");
}
printf("\n");
}
Leaveye 2004-10-16
  • 打赏
  • 举报
回复
更正一下:
long HexNum = 0x10002000;
printf("%04X %04X\n", (int)(HexNum >> 0x10), (int)(HexNum & 0xffff));
双杯献酒 2004-10-16
  • 打赏
  • 举报
回复
// 假设数据为正
unsigned int data = 0x10002000;
unsigned int dataH = (data >> 0x10)&0xffff;
unsigned int dataL = data&0xffff;
printf("%04X %04X",dataH,dataL);
Leaveye 2004-10-16
  • 打赏
  • 举报
回复
long HexNum = 0x10002000;
printf("%4X %4X", HexNum >> 0x10, HexNum & 0xffff);
xqlez 2004-10-16
  • 打赏
  • 举报
回复
用printf格式串不用其它的就没办法了?
printf格式定义串是不是无法做到这样的效果
纪俊 2004-10-15
  • 打赏
  • 举报
回复
我觉得不用转换也可以
用位操作把数一位一位输出到一个变量中
等输出了4位就打印出来
/////////////////////////////////////////////////////////////////////
欢迎大家使用编程文档手册V3.5,编程辅助类软件

集编程文档的收集、查询、浏览、编辑等功能于一体的辅助编程类软件。通过日积月累,相信本软件将给广大程序开发人员以及编程爱好者们带来很大的帮助。

下载地址:
天空软件站:http://www.skycn.com/soft/11906.html
zhangfjj 2004-10-15
  • 打赏
  • 举报
回复
/* 只有转换成字符串输出了*/
#include <stdio.h>
void main()
{
char str[50];
long int a=0x10002000;
int i;
printf("a=%lx\n",a);
sprintf(str,"%lx",a);
for(i=1;*(str+i-1)!='\0';i++)
{
printf("%c",*(str+i-1));
if(i%4==0)
printf(" ");
}
printf("\n");
}
DaySummer 2004-10-15
  • 打赏
  • 举报
回复
你将其转换成字符串,然后对字符串操作不就可以了

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧