vc++ 中 十六进制转换啊……

求助,用VC++编写一个进制转换的程序
要求如下:
1.将一个数字如12349将其转换为16进制为303DH,则数字16进制下和为十进制的19,(因为16进制的D为13,所以3+0+3+13=19);然后将这个16进制数字翻转为D303H,并在次转换为十进制输出54019。
2.将读入的整数,转换到16进制并输出;
计算16进制下各位和的十进制值并输出;
将16进制数据按照位置进行翻转,获得新的16进制数据,然后转换成十进制值并输出。

学校给的设计题 哎 后悔啊 怎么当初没好好学呢……
在线等啊 谢谢啦~~~~~~

DecToHex就是把10进制转换成16进制字符串的函数,c++里short是16位的(4位16进制),你可以把malloc(5)和char *p1=p+4,改成malloc(9)和char *p1=p+8,在把short改成int让他来显示32位数。。。

#include <stdio.h>
#include <stdlib.h>

char* DecToHex(short n) {
char* p=(char*)malloc(5);
char* p1=p+4;
*p1=0;
char c=0;
while (p1>p) {
c=n%16;
n/=16;
if (c>=10)
c+=7;
c+=0x30;
p1--;
*p1=c;
}
return p;
}

int main(int argc, char* argv[]) {
printf(DecToHex(12349));

printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答