小数转换成二进制c语言,只写出了十进制小数转换成二进制的,求二进制小数转十进制的...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
#include
#include
#include
#define NUM 2
#define ZERO 0.000001
int PrnMainMenu(void);
void ProcessLoop(void);
void two(void);
void ten(void);
int a,b[10],i=0,c=0;
void integer(int n) //定義整數部分
{
if(n>0)
{
integer(n/NUM);
printf("%d",n%NUM);
}
}
void decimal(double m)//定義小數部分
{
if(m>ZERO)
{
m=m*NUM;
printf("%d",(long)m);
decimal(m-(long)m);
}
}
main() /*主函數*/
{
ProcessLoop();
return 0;
}
void ProcessLoop(void)
{
int iChoice;
iChoice = PrnMainMenu();
while (iChoice != 3)
{
switch(iChoice)
{
case 1:
two();
break;
case 2:
ten();
break;
}
system("pause");/*暫停*/
system("cls"); /*_clearscreen(0);清屏 */
iChoice = PrnMainMenu();//返回主菜單
}
return;
}
void two(void)//十進制轉二進制
{
double f;
long n;
printf("請輸入原數據:");
scanf("%lf",&f);
if(f<0)
{
printf("-");
f=-f;
}
n=(long)f;//整數部分
printf("轉換成%d進制的小數為:",NUM);
integer(n);
printf(".");
decimal(f-n);//小數部分的轉換
printf("\n");
}
void ten(void)//二進制轉十進制
{
printf("請輸入原數據\n");
scanf("%d",&a);
while(a!=0)
{
b[i]=a%10;
a/=10;
i++;
}
i--;
for(;i>=0;i--)
c=c*2+b[i];
printf("十進制為:%d\n",c);
}
int PrnMainMenu(void)//主菜單
{
int iChoice;
printf("\n");
printf("----------------菜單-----------------\n");
printf("\n");
printf(" 1:將十進制數轉換為二進制數\n");
printf(" 2:將二進制數轉換為十進制數\n");
scanf("%d",&iChoice);
return iChoice;
}
總結
以上是生活随笔為你收集整理的小数转换成二进制c语言,只写出了十进制小数转换成二进制的,求二进制小数转十进制的...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5中的一些标签学习总结
- 下一篇: JAVA实现网页版斗地主_java实现斗