代码如下:
#include "stdio.h"
int main()
{
int num=0
int a[100]
int i=0
int m=0
int yushu
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}
printf("请输入一个十进制整数:")
scanf("%d",&num)
while(num>0)
{
yushu=num%16
a[i++]=yushu
num=num/16
}
printf("转化为十六进制的数为:0x")
for(i=i-1i>=0i--)//倒序输出 {
m=a[i]
printf("%c",hex[m])
}
printf("\n")
}
程序运行结果:
扩展资料
C语言中,十进制转换十六进制,可以先输入十进制整数,然后去拼十六进制,十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头,只需把二进制除以16得到余数去上面定义的hex[16]数组进行取值接可以得到转换的数字。
参考资料:百度百科-十六进制
根据10进制转换为16进制的规则,编写C语言程序将10进制数转换为16进制数。
具体实现方法可参考如下程序:
#include<stdio.h>void main()
{
int i, x // x表示欲转换的10进制数
int data[10], index=0 // data数组存放转换后的16进制数,index表示下标
scanf("%d", &x) // 接受欲转换的10进制数
for(i=0 i<10 i++) // 对数组data进行初始赋值操作
data[i] = 0
printf("%d对应的16进制为:", x)
// 反复相除取余,并将余数存放在data数组中
while(x>0)
{
data[index] = x%16
x = x/16
index++
}
// 逆序输出data数组中的元素,即为10进制数对应的16进制数
for(i=index-1 i>=0 i--)
printf("%d", data[i])
printf("\n")
}