校园快讯|学习资讯|CCC留言|校园文学|电脑网络|创业沙龙|博客日志|求职招聘|二手市场|学子相册

时尚女生|旅游指南|动漫天地|校园问答|失物招领|时尚生活|校园交友|笑话频道|分类广告|留言反馈

 
信息资讯 你问我答 找工作 找人才 二手市场
您的位置:思源驿站 > 电脑网络 > C语言 > 浏览正文
C语言进制转换程序说明及源程序
www.syyz.com  发布:2009-5-18 11:56:51  来自:转载  浏览:
  进制转换程序说明及源程序

程序说明:
首先用switch生成一个菜单,然后通过menu_select()选择菜单项,三个函数的功能分别是:Hextodec十六进制转换成十进制的函数;Octtodec是八进制转换成十进制的函数;Bintodec是二进制转换成十进制的函数。
此程序仅供参考,可能编写中有错误或许多方面没有考虑周全。如有其他程序可代替本程序。

源程序:
#include "stdio.h"
#include "stdlib.h"
int menu_select();
void main()
{
long int Hextodec(char s[]);
long int Octtodec(char s[]);
long int Bintodec(char s[]);
int c,flag,i,flag1;
flag=0;
flag1=1;
i=0;
char t[100];
{
switch (menu_select()){
case 1:
      printf("input a HEXTODEC umber:");
      while((c=getchar())!='\0' && i<100 && flag1)
  {if(c>='0' && c<='9'|| c>='a' && c<='f' || c>='A' && c<='F')
  {
  flag=1;
  t[i++]=c;
   }
  else if(flag)
  {
  t[i]='\0';
  printf("%d",Hextodec(t));
 printf("\ngo on (Y/N)?");
 c=getchar();
 if (c=='n' || c=='N')
   flag1=0;
   else
   { flag=0;
     i=0;
   }
 }
   }
    break;
         
case 2:
printf("input a OCTTODEC umber:");
 while((c=getchar())!='\0'&& i<100 && flag1)
 {if(c>='0' && c<='7')
  {
  flag=1;
  t[i++]=c;
   }
  else if(flag)
  {
  t[i]='\0';
  printf("%d",Octtodec(t));
    printf("\ngo on (Y/N)?");
 c=getchar();
 if (c=='n' || c=='N')
   flag1=0;
   else
   { flag=0;
     i=0;
   }
 }
   }
    break;
case 3:
printf("input a BINTODEC number:");
 while((c=getchar())!='\0' && i<100 && flag1 )
 {if(c>='0' && c<='1')
  {
  flag=1;
  t[i++]=c;
   }
  else if(flag)
  {
  t[i]='\0';
  printf("%d",Bintodec(t));
  printf("\ngo on (Y/N)?");
 c=getchar();
 if (c=='n' || c=='N')
   flag1=0;
   else
   { flag=0;
     i=0;
   }
 }
   }
    break;
case 4:
  printf("Goodbye!\n");
  exit(0);
}
}
}
int menu_select()
{
  char s;
  int  cn;
  printf("  1.HEXTODEC\n");
  printf("  2.OCTTODEC\n");
  printf("  3.BINTODEC\n");
  printf("  4.Goodbye\n");
  do {
       s=getchar();
       cn=(int)s-48;
     }while (cn<0||cn>4);
     return cn;
     }
long int Hextodec(char s[])
   {long int i,n;
    n=0;
    for(i=0;s[i]!='\0';i++)
    {if (s[i]>='0' && s[i]<='9')
       n=n*16+s[i]-'0';
    if (s[i]>='a' && s[i] <='f')
       n=n*16+s[i]-'a'+10;
    if (s[i]>='A' && s[i]<='F')
       n=n*16+s[i]-'A'+10;
    }
    return(n);
}
long int Octtodec(char s[])
   {long int i,n;
    n=0;
    for(i=0;s[i]!='\0';i++)
n=n*8+s[i]-'0';
return(n);
   }
long int Bintodec(char s[])
   {long int i,n;
    n=0;
    for(i=0;s[i]!='\0';i++)
n=n*2+s[i]-'0';
return(n);
   }
(编辑:孤舟钓徒) 留言评论】【在线投稿】【打印网页】【关闭窗口】【↑顶部
+ 相关文章
·c#求一年中的第几天
·c语言学习
·微软架构师谈编程语言发展(一)
·想知道学习编程从何入手吗?
·C语言音乐演奏程序说明及源程序
·C语言小球弹跳游戏程序运算实训说明
·C语言汉字显示程序说明及源程序
·C语言文本文件行编辑程序说明及源程序
·C语言多项式运算程序说明及源程序
·C语言猜数字游戏!可查看游戏排名!
版权与免责声明:
1.凡本网注明来源为“盐城师范学院思源驿站”的所有作品,包括文字与图片,未经本网授权不得转载。违反上述声明者,本网将依法追究法律责任。
2. 凡注明"来源:xxx(非本站)"的作品,均转载自其它媒体,本网转载的目的在于传播更多信息,此类稿件并不代表本网观点,本网不承担此类稿件侵权行为的直接责任及连带责任。
3. 如因作品内容、版权等需要同本网联系的,请在作品在本网发表之日起30日内联系,否则视为放弃相关权利