用C语言如何把十进制转换为十六进制,要求程序中运用函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言如何把十进制转换为十六进制,要求程序中运用函数相关的知识,希望对你有一定的参考价值。
**程序功能:求二进制,十进制,八进制
创建人:蒲宇林
创建日期:2007年8月13日
**/
#include
void
two();
void
eight();
void
sixteen();
/**主函数**/
void
main()
int
select;
do
printf("0
-
退出,1
-
十进制转二进制,2
-
十进制转八进制,3
-
十进制转十六进制");
scanf("%d",&select);
switch(select)
case
1
:
two();
break;
//十进制转二进制
case
2
:
eight();
break;
//十进制转八进制
case
3
:
sixteen();
break;
//十进制转十六进制
default
:
printf("您的输入有误,请重新输入!");
break;
if(select
==
0)
break;
while(1);
void
two()
int
num,
i;
int
arr[20];
printf("\n请输入一个十进制数:");
scanf("%d",&num);
for(
i
=
0
;
1
;
i++)
//转换为二进制并存入数组
arr[i]
=
num
%
2;
num
=
num
/
2;
if(num
==
0)
break;
printf("转换为二进制:");
//打印
for(;
i
>=
0
;
i--
)
printf("%d",arr[i]);
printf("\n");
void
eight()
int
num,
i;
int
arr[20];
printf("\n请输入一个十进制数:");
scanf("%d",&num);
for(
i
=
0
;
1
;
i++)
//转换为八进制并存入数组
arr[i]
=
num
%
8;
num
=
num
/
8;
if(num
==
0)
break;
printf("转换为八进制:");
//打印
for(;
i
>=
0
;
i--
)
printf("%d",arr[i]);
printf("\n");
void
sixteen()
int
num,
i;
int
arr[20];
printf("\n请输入一个十进制数:");
scanf("%d",&num);
for(
i
=
0
;
1
;
i++)
//转换为二进制并存入数组
arr[i]
=
num
%
16;
num
=
num
/
16;
if(num
==
0)
break;
printf("转换为十六进制:");
//打印
for(;
i
>=
0
;
i--
)
switch(arr[i])
case
10
:
printf("a");
break;
case
11
:
printf("b");
break;
case
12
:
printf("c");
break;
case
13
:
printf("d");
break;
case
14
:
printf("e");
break;
case
15
:
printf("f");
break;
default
:
printf("%d",arr[i]);
printf("\n");
参考技术A main()
void
change(int
s);
int
num;
printf("请输入这个数:");
scanf("%d",&num);
printf("该数的十六进制形式为:0x%x\n",num);
//直接以十六进制的形式将整数输出
change(num);
void
change(int
s)
char
num1[10];
sprintf(num1,"%x",s);
//sprintf()函数是将变量按指定的格式保存至字符串中。
printf("该数的十六进制形式为:0x%s\n",num1);
说明:
%d
以十进制形式输出整数
%o
以八进制形式输出整数
%x
以16进制形式输出整数 参考技术B 说明:
1.首先变量的值和进制无关
int
a=10;
和
int
a=0X0A;都是一回事。
2.如果要将一个值用十六进制输出
int
a
=
10;
printf("%X",a);
输出
A
当然了,建议用
printf("0X%X",a);
输出
0XA
附:
%d
以十进制形式输出整数
%o
以八进制形式输出整数
%x
以16进制形式输出整数(0-9
a-f)即:字母小写
%X
以16进制形式输出整数(0-9
A-F)即:字母大写
还是给个可以运行的代码,说明一下问题:
#include
#include
char*
DecToHex(int
iDecVal,char*
szHex)
//将十进制整数格式化为16进制,结果保存在字符串中
sprintf(szHex,"%X",iDecVal);
return
szHex;
void
main()
int
iDecVal;
char
szHex[100];
iDecVal
=
100;
DecToHex(iDecVal,szHex);
printf("Decimal:%d,Hex:%s\n",iDecVal,szHex);
用C语言编写程序,输入任意一个十进制的三位数,将它分别转化为五进制、八进制和十五进制?
输入任意一个十进制三位数,请你把它转换为五进制(0—4)、八进制(0—7)和十五进制(0—9,A-E).设计一个友好界面,方便操作:要求界面中输入1转换为五进制,输入2转换为八进制,输入3转换为十五进制,输入0为退出
(用c医院程序编写,最好是用Dev-c++!!非常感谢
#include<string.h>
static char *QUINARY = "01234";
static char *OCTONARY = "01234567";
static char *FIFTNARY = "0123456789ABCDE";
static char buff[10];
char *toQuinary(int num);
char *toOctonary(int num);
char *toFifnary(int num);
char *reverse(char *str);
int main(void)
int flag = 1;
int num = 0;
int choice = 0;
while(flag)
printf("请输入一个三位数:");
scanf("%d",&num);
printf("转换为几进制? 1--五进制 2--八进制 3--十五进制 0--退出\t");
scanf("%d",&choice);
char *result = "";
switch(choice)
case 1:
result = toQuinary(num);
printf("%s\n",result);
break;
case 2:
result = toOctonary(num);
printf("%s\n",result);
break;
case 3:
result = toFifnary(num);
printf("%s\n",result);
break;
default:
flag = 0;
break;
return 0;
char *toQuinary(int num)
if(num <= 0) return "0";
int i = 0;
while(num > 0)
int ret = num % 5;
buff[i] = QUINARY[ret];
num /= 5;
i++;
buff[i]='\0';
return reverse(buff);
char *toOctonary(int num)
if(num <= 0) return "0";
int i = 0;
while(num > 0)
int ret = num % 8;
buff[i] = OCTONARY[ret];
num /= 8;
i++;
buff[i]='\0';
return reverse(buff);
char *toFifnary(int num)
if(num <= 0) return "0";
int i = 0;
while(num > 0)
int ret = num % 15;
buff[i] = FIFTNARY[ret];
num /= 15;
i++;
buff[i]='\0';
return reverse(buff);
char *reverse(char *str)
int length = strlen(str);
char copy[length+1];
int i = 0;
for(i=0; i<length;i++)
copy[i] = str[length-i-1];
copy[i] = '\0';
strcpy(str,copy);
return str;
参考技术A void fun1(int n, int d) // n:待转换的数,d:进制
char buf[10];
int count = 0;
while (n)
buf[count++] = n % d;
n /= d;
while (count)
unsigned char ch = buf[--count];
ch < 10 ? ch += '0' : ch += 'A' - 10;
printf("%c", ch);
进制转换部分供参考,友好界面算了吧
以上是关于用C语言如何把十进制转换为十六进制,要求程序中运用函数的主要内容,如果未能解决你的问题,请参考以下文章
用C语言编写程序,输入任意一个十进制的三位数,将它分别转化为五进制、八进制和十五进制?