鱼C论坛

 找回密码
 立即注册
查看: 2441|回复: 5

新手,做个小程序……求指点。。。

[复制链接]
发表于 2014-3-21 04:34:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写了个二进制转成十进制的小程序。
  1. #include <stdio.h>

  2. int cheng(x)
  3. {
  4.         int f=1,m;
  5.         for(m=1;m<=x;m++)
  6.         {
  7.                 f*=2;
  8.         }
  9.         return f;
  10. }

  11. void main()
  12. {
  13.         while(1)
  14.         {
  15.         int a;
  16.         int n=0,i,s=0;
  17.         int b[100];
  18.         printf("Enter a num(位长小于10位):");
  19.         scanf("%d",&a);
  20.         for(i=1;a!=0;i++)
  21.         {
  22.                 b[i]=a%10;
  23.                 a=a/10;
  24.                 n++;
  25.         }
  26.         for(i=1;i<=n;i++)
  27.         {
  28.                 s+=b[i]*cheng(i-1);
  29.         }
  30.         printf("%5d",s);
  31.         }
  32. }
复制代码
当输入位数长于10位,就会出错。猜想是int 型的变量没有那么高的精度。

二进制到十进制.jpg
希望高手能告知正确的方法……谢谢。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-3-21 07:37:23 | 显示全部楼层
楼主int cheng(x) 这编译可以吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-21 09:18:00 | 显示全部楼层
任意进制向十进制转换:这里只写了2,8,16向10的转换
#include <stdio.h>
void main()
{
char s[6],*p;
long x=0;
p=s;
printf("Input er jin zhi data:");
gets(p);
while(*p)
{
x*=2;
x+=*p-'0';
p++;
}
printf("%d",x);
printf("\nInput ba jin zhi data:");
gets(p);
x=0;
while(*p)
{
x*=8;
x+=*p++-'0';
}
printf("%d",x);
printf("\nInput 16 jin zhi date:");
x=0;
gets(p);
while(*p)
{
if(*p>='A'&&*p<='F')
{
*p=*p-'A'+'0'+10;
}
if(*p>='a'&&*p<='f')
{
*p=*p-'a'+'0'+10;
}       
x*=16;
x+=*p++-'0';
}
printf("%d",x);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-21 10:07:39 | 显示全部楼层
没看懂咋回事啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-21 14:57:00 | 显示全部楼层
这个可以,我确定。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-21 15:55:18 | 显示全部楼层
可以参考下这个:http://blog.fishc.com/2048.html

利用栈实现没有输入长度限制的转换。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-19 21:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表