c指针解决十六进制到十进制的转换

    最近研究C语言,发现用多了C#语言这么一个简单的进制转换问题搞了我很多时间。

    进制转换其实很简单,在输出时用d或u一类的字符转换就ok了啊,这不废话嘛,我现在需要用函数,且用指针来实现转换void dec_to_hex(int dec,char *p)。废话不说了,直接上代码吧

 #include "stdio.h"
 void dec_to_hex(int dec,char *p)
{
  int i=0;
  while(dec>0)
 {
  if(dec%16<10)
    *p=dec%16+'0';
  else
    *p=dec%16+'A'-10;
  dec=dec/16;
  i++;
  p++;
 }
 *p='/0';
 while(i>=0)
 {
  printf("%c",*(p-1));
  i--;
  p--;
 }
 printf("/n");
}
void main()
{
 int i=0;
 char hex[100];
 printf("input a dec number:");
 scanf("%d",&i);
 dec_to_hex(i,hex);
}

当然可能方法未必就一定是写的很好的方法,也许还有更好的,但是我只想出了这个,不过把方法中的16换成其他数字,就可以实现其他进制向十进制的转换,嘿嘿,写出个程序心情那是刚刚的……

欢迎大家排砖!!!也希望有更好的朋友能把代码告诉我!先谢了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值