进制转换
2016-12-13 22:03
211 查看
题目:请自定义函数,并根据用户选择进行数据进制转换(注意完善相应的用户提示),十六进制数和十进制数互换,二进制数和十进制数互换,八进制数和十进制数互换。
#include<stdio.h>
#include<string.h>
/* 函数功能:显示主页面
** 入口参数:无
** 出口参数:无
*/
void show ()
{
printf("**************************************\n");
printf("十六进制 <=> 十进制 ----1\n");
printf("八进制 <=> 十进制 ----2\n");
printf("二进制 <=> 十进制 ----3\n");
printf("十进制 <=> 十六进制 ----4\n");
printf("十进制 <=> 八进制 ----5\n");
printf("十进制 <=> 二进制 ----6\n");
printf("请选择您要转换的进制:\n");
printf("**************************************\n");
}
/* 函数功能:根据选择调用不同的函数
** 入口参数:int n 用户选择
** 出口参数:无
*/
void zhuanhuan (int n)
{
if(n==1)
{
shiliushi();
}
else if(n==2)
{
bashi();
}
else if(n==3)
{
ershi ();
}
else if(n==4)
{
shishiliu();
}
else if(n==5)
{
shiba();
}
else if(n==6)
{
shier ();
}
}
/* 函数功能:十六进制转换为十进制
** 入口参数:无
** 出口参数:无
*/
void shiliushi ()
{
int n;
scanf("%x",&n);
printf("十六进制%x转换为十进制%d\n",n,n);
}
/* 函数功能:八进制转换为十进制
** 入口参数:无
** 出口参数;无
*/
void bashi ()
{
int n;
scanf("%o",&n);
printf("八进制%o转换为十进制%d\n",n,n);
}
/* 函数功能:二进制转换为十进制
** 入口参数:无
** 出口参数:无
*/
void ershi ()
{
char n[1000];
char c;
int i,j,len,sum=0,mul=1;
getchar();
gets(n);
len=strlen(n);
for(i=0,j=len-1;i<j;i++,j--)
{
c=n[i];
n[i]=n[j];
n[j]=c;
}mul=0;
for(i=0;i<len;i++)
{
if (i==0)
{
if(n[i]=='0')
break;
sum += 1;
}
else
{
mul=1;
for(j=0;j<i;j++)
{
if(n[i]=='0')
{
mul=0;
break;
}
mul
bc8b
*= 2;
}
sum +=mul;
}
}
printf("二进制转换为十进制为:%d\n",sum);
}
/* 函数功能:十进制转换为十六进制
** 入口参数:无
** 出口参数:无
*/
void shishiliu()
{
int n;
scanf("%d",&n);
printf("十进制%d转换为十六进制%x\n",n,n);
}
/* 函数功能:十进制转换为八进制
** 入口参数:无
** 出口参数:无
*/
void shiba()
{
int n,m;
scanf("%d",&n);
printf("十进制%d转换为八进制%o\n",n,n);
}
/* 函数功能:十进制转换为二进制
** 入口参数:无
** 出口参数:无
*/
void shier()
{
int i,n,m,j;
int a[1000]={0};
scanf("%d",&n);
m=n;
for(i=0;n!=0;i++)
{
a[i] =n%2;
n /=2;
}
j=i;
printf("十进制%d转换为二进制: \n",m);
for(i=j-1;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
int main()
{
int n;
show();
system("color 2");
while(scanf("%d",&n)!=EOF)
{
zhuanhuan (n);
getchar();
show();
}
return 0;
}
#include<stdio.h>
#include<string.h>
/* 函数功能:显示主页面
** 入口参数:无
** 出口参数:无
*/
void show ()
{
printf("**************************************\n");
printf("十六进制 <=> 十进制 ----1\n");
printf("八进制 <=> 十进制 ----2\n");
printf("二进制 <=> 十进制 ----3\n");
printf("十进制 <=> 十六进制 ----4\n");
printf("十进制 <=> 八进制 ----5\n");
printf("十进制 <=> 二进制 ----6\n");
printf("请选择您要转换的进制:\n");
printf("**************************************\n");
}
/* 函数功能:根据选择调用不同的函数
** 入口参数:int n 用户选择
** 出口参数:无
*/
void zhuanhuan (int n)
{
if(n==1)
{
shiliushi();
}
else if(n==2)
{
bashi();
}
else if(n==3)
{
ershi ();
}
else if(n==4)
{
shishiliu();
}
else if(n==5)
{
shiba();
}
else if(n==6)
{
shier ();
}
}
/* 函数功能:十六进制转换为十进制
** 入口参数:无
** 出口参数:无
*/
void shiliushi ()
{
int n;
scanf("%x",&n);
printf("十六进制%x转换为十进制%d\n",n,n);
}
/* 函数功能:八进制转换为十进制
** 入口参数:无
** 出口参数;无
*/
void bashi ()
{
int n;
scanf("%o",&n);
printf("八进制%o转换为十进制%d\n",n,n);
}
/* 函数功能:二进制转换为十进制
** 入口参数:无
** 出口参数:无
*/
void ershi ()
{
char n[1000];
char c;
int i,j,len,sum=0,mul=1;
getchar();
gets(n);
len=strlen(n);
for(i=0,j=len-1;i<j;i++,j--)
{
c=n[i];
n[i]=n[j];
n[j]=c;
}mul=0;
for(i=0;i<len;i++)
{
if (i==0)
{
if(n[i]=='0')
break;
sum += 1;
}
else
{
mul=1;
for(j=0;j<i;j++)
{
if(n[i]=='0')
{
mul=0;
break;
}
mul
bc8b
*= 2;
}
sum +=mul;
}
}
printf("二进制转换为十进制为:%d\n",sum);
}
/* 函数功能:十进制转换为十六进制
** 入口参数:无
** 出口参数:无
*/
void shishiliu()
{
int n;
scanf("%d",&n);
printf("十进制%d转换为十六进制%x\n",n,n);
}
/* 函数功能:十进制转换为八进制
** 入口参数:无
** 出口参数:无
*/
void shiba()
{
int n,m;
scanf("%d",&n);
printf("十进制%d转换为八进制%o\n",n,n);
}
/* 函数功能:十进制转换为二进制
** 入口参数:无
** 出口参数:无
*/
void shier()
{
int i,n,m,j;
int a[1000]={0};
scanf("%d",&n);
m=n;
for(i=0;n!=0;i++)
{
a[i] =n%2;
n /=2;
}
j=i;
printf("十进制%d转换为二进制: \n",m);
for(i=j-1;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
int main()
{
int n;
show();
system("color 2");
while(scanf("%d",&n)!=EOF)
{
zhuanhuan (n);
getchar();
show();
}
return 0;
}
相关文章推荐
- 安卓辅助功能 滴滴自动刷单
- 基于手机传感器数据使用 CNN 识别用户行为的 Tensroflow 实现
- MWeb自动发布到博客园
- 怎么让浮动的元素和定位的元素水平垂直居中
- LeetCode 165. Compare Version Numbers
- Exchange 2007 迁移 2010
- 重载操作符的最简单的方法
- const(一):(转) 一个函数名后面加const表示什么意思
- 2016年12月13日学习总结----C语言关键字总结
- PCA的数学原理
- lintcode,报数
- 存储过程
- 如何在Spark2.0.2中启动Ipython Notebook
- Python爬虫学习1--糗事百科
- Android Studio 2.2 使用 OpenCV 的两种方式(傻瓜式教程)
- 第十五周项目四字符串长度
- 1121. Damn Single (25)
- 栈的基本操作
- JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法
- Leetcode 299 Bulls and Cows