C语言编程:怎么把一个十进制数转换成为一个十六进制数?10转10是什么意思
//下面是10进制转换成任意进制数#include"stdio.h"main(){inti=0,m,n,r,a[40];charstr[16]="0123456789ABCDEF";printf;scanf;/*r代表进制数*/if(m<0){printf;m=-m;}/*判断是否输入的是负数*/do{a[i++]=m%r;m=m/r;}while(m>0);/*m对r取余数,再除以r*/printf;forprintf;}//够简单吧!第一种:用来糊弄老师的,输入一个数采用16进制格式输出#include int main(){int num = 0;scanf;printf;return 0;}第二种:#include #include char oNumTable[6] = {'A', 'B', 'C', 'D', 'E', 'F'};void dToO;int main(){int dNum;char oNum[100] = {0};//输入一个十进制数scanf;//调用转换函数,将十进制转换成以字符串表示的十六进制dToO;//输出以字符串表示的16进制数据printf;return 0;}void dToO{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;}}
C语言编程:怎么把一个十进制数转换成为一个十六进制数?
//下面是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]]);
}
//够简单吧!
第一种:用来糊弄老师的,输入一个数采用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);
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;
}
}