標題:
[Zj]2011 06 25 十進位轉二進位 不超過八位數 C++
[打印本頁]
作者:
buy
時間:
2011-6-25 10:48
標題:
[Zj]2011 06 25 十進位轉二進位 不超過八位數 C++
本帖最後由 buy 於 2011-7-23 10:14 編輯
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char x[10]; //使用者輸入
while(gets(x))
{
int a,b,temp=0,temppoint=0; //temp為小數點前數字,temppoint為小數點後數字
for(a=0 ; a<(int)strlen(x) ; a++)
{
if(x[a]=='.')
break;
temp=temp*10+x[a]-48;
}
for(b=a+1;b< (int)strlen(x);b++)
{
temppoint=temppoint*10+x[b]-48;
}
//************以上為抓取使用者所輸入的整數位數,小數位數
int n=a,n1=b-a-1;
int y[50];
a=0; //計算迴圈數
if(temp!=0)
{
while(temp!=1)
{
y[a]=temp%2;
temp=temp/2;
a++;
}
printf("1");
for(b=a-1;b>=0;b--)
{
printf("%d",y[b]);
}
printf(".");
}
else
printf("0.");
int m=1;
for(a=0;a<n1;a++)
{
m=m*10;
}
while(1)
{
temppoint=temppoint*2;
printf("%d",temppoint/m);
temppoint=temppoint%m;
if(temppoint==0) break;
}
printf("\n");
}
return 0;
}
複製代碼
作者:
buy
時間:
2011-6-25 12:01
大數相減:
[attach]293[/attach]
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2