C语言将十进制转换成十六进制

#include<stdio.h>
main()
{
	char arr[50]="";
	char *p= arr;
	int i ;
	scanf("%d", &i);//输入一个十进制的数
	int result = 0;
	while (i != 0) {
		result = i % 16;//求出余数
		if (result > 9) {//16进制 10为‘A’,11为‘B’....以此类推
			switch (result) {
			case 10: *p++ = 'A';break;
			case 11: *p++ = 'B';break;
			case 12: *p++ = 'C';break;
			case 13: *p++ = 'D';break;
			case 14: *p++ = 'E';break;
			case 15: *p++ = 'F';break;
			}
		}
		else {
			*p++ =result%16+48;//如果小于十直接把它的值给数组元素
		}
		i /= 16;//每给数组元素赋值一次后除以一次进制数
	}
	//最后求出来的结果倒序输出就是我们想得到的数
	for (i = p - 1 - arr;i >= 0;i--) {
		printf("%c", arr[i]);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值