| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4981 人关注过本帖
标题:怎样将十六进制转换为十进制 用递归的方法
取消只看楼主 加入收藏
雪松2009
Rank: 1
等 级:新手上路
帖 子:16
专家分:1
注 册:2010-5-22
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
怎样将十六进制转换为十进制 用递归的方法
怎样将十六进制转换为十进制 用递归的方法
已经有预设代码
#include"stdio.h"
int main()
{  char s[10];
   unsigned long n, htod();
   gets(s);
   n = htod(s);
   printf("%u\n",n);
}
搜索更多相关主题的帖子: 十进制 十六进制 递归 
2010-06-11 16:45
雪松2009
Rank: 1
等 级:新手上路
帖 子:16
专家分:1
注 册:2010-5-22
收藏
得分:0 
但是这样就修改了预设代码  预设代码是不能修改的啊
2010-06-11 20:50
雪松2009
Rank: 1
等 级:新手上路
帖 子:16
专家分:1
注 册:2010-5-22
收藏
得分:0 
#include"stdio.h"
#include"math.h"
unsigned long htod(char s[])
{ int i,j,k;
  unsigned a[20];
  unsigned long r=0,m;
  i=0;
  for(i=0;s[i]!='\0';i++);
  for(j=0;j<=i-1;j++)
   { if(s[j]>=48&&s[j]<=57)
      a[j]=s[j]-48;
      if(s[j]>=65&&s[j]<=90)
      a[j]=s[j]-55;}
  for(k=0;k<=i-1;k++)
   { m=pow(16,i-1-k);
     r=r+a[k]*m;}
 return(r);
}
main()
{  char s[10];
    unsigned long n,htod();
    gets(s);
    n=htod(s);
    printf("%u\n",n);
}

这个是正确的 但是为什么在DEV C++上不能编译呢   比如说 输入FF 输出255
2010-06-12 13:13
雪松2009
Rank: 1
等 级:新手上路
帖 子:16
专家分:1
注 册:2010-5-22
收藏
得分:0 
#include"stdio.h"
#include"math.h"
int main()
{  char s[10];
   unsigned long n, htod();
   gets(s);
   n = htod(s);
   printf("%u\n",n);
}

unsigned long htod(char *s)

{
            int i,j;
            long int sum;
            sum=0;
            i=strlen(s);
            for(i=i-1,j=0;i>=0;i--,j++)
                {
                    if(s[j]>='0'&&s[j]<='9')
                    sum=(s[j]-48)*pow(16,i)+sum;
                    else if(s[j]>='a'&&s[j]<='f')
                    sum=(s[j]-87)*pow(16,i)+sum;
                    else if(s[j]>='A'&&s[j]<='F')
                    sum=(s[j]-55)*pow(16,i)+sum;
                }
            return sum;

}
回复6楼的
 E:\未命名1.cpp In function `int main()':
6 E:\未命名1.cpp too many arguments to function `long unsigned int htod()'  
8 E:\未命名1.cpp at this point in file
 E:\未命名1.cpp In function `long unsigned int htod(char*)':
22 E:\未命名1.cpp [Warning] converting to `long int' from `double'
在我的电脑上就会知道会这样 完全不能编译 很是恼火 不知哪位知道这是为什么
2010-06-13 12:52
快速回复:怎样将十六进制转换为十进制 用递归的方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030276 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved