十进制转16进制

#include <stdio.h>
#include <stdlib.h>
#define MAX 255
void TenToSix(int n)
{

 
 char a[MAX],sign =1;
 int i=0;

 if(n==0)
 {
  printf("HEX = %d\n",n);
  exit(0);
 }
 if(n < 0)
 {
  sign = 0;
  n = -n;
 }

 while( n!=0)//求余辗除法
 {
  a[i++] = n %16;
  n = n/16;
 }

 printf("Hex=%c0x",sign?' ':'-');

 for(;i>0;i--)
 {
  switch(a[i-1])
  {
   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 16:printf("f");break;
   default:printf("%d",a[i-1]);
  }
 }

}

对于正负数的处理,应该使用最高位0,1表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值