C语言编程:怎么把一个十进制数转换成为一个十六进制数

第一种:用来糊弄老师的,输入一个数采用16进制格式输出

#include

int main()

{

int num = 0;

scanf("%d", &num);

printf("%x", num);

return 0;

}

第二种:

#include

#include

char oNumTable[6] = {'A', 'B', 'C', 'D', 'E', 'F'};

void dToO(int, char*);

int main()

{

int dNum;

char oNum[100] = {0};

//输入一个十进制数

scanf("%d", &dNum);

//调用转换函数,将十进制转换成以字符串表示的十六进制

dToO(dNum, oNum);

//输出以字符串表示的16进制数据

printf("%s\n", oNum);

c语言类型强制转换,c语言类型强制转换例子

return 0;

}

void dToO(int dNum, char* oNum)

{

char temp[100] = {0};

for (int i = 0; (dNum) && (i

temp[i] = (dNum % 16);

if (temp[i] > 9) {

temp[i] = oNumTable[temp[i] - 10];

}

else{

temp[i] += '0';

}

dNum /= 16;

}

char* p = temp;

while (*(p+1)) p++;

for (int i = 0; p != temp - 1; i++, p--) {

oNum[i] = *p;

}

}

//下面是10进制转换成任意进制数

#include"stdio.h"

main()

{

inti=0,m,n,r,a[40];

charstr[16]="0123456789ABCDEF";

printf("\n请输入一个整数和要转换成的进制数\n");

scanf("%d%d",&m,&r);/*r代表进制数*/

if(m<0)

{printf("%c",'-');

m=-m;}/*判断是否输入的是负数*/

do{

a[i++]=m%r;

m=m/r;}while(m>0);/*m对r取余数,再除以r*/

printf("转换结果是:\n");

for(n=i-1;n>=0;n--)

printf("%c",str[a[n]]);

}

//够简单吧!