c語言10進制轉2進制代碼?#include<stdio.h>#define N 10,下面我們就來聊聊關于c語言10進制轉2進制代碼?接下來我們就一起去了解一下吧!
c語言10進制轉2進制代碼
#include<stdio.h>
#define N 10
#define M 100
void fun10_2_Z(long number)//十進制整數部分轉二進制
{
char ch[M];
int len=0;
if(number==0)
{
printf("%d",number);//如果整數部分為零直接輸出
}
else
{
while(number)
{
ch[len ]=number%2;//餘數放入數組存儲
number=number/2;//得出的整數遞歸除2
}
for( ;len>0;len--)//逆向輸出
{
printf("%d",ch[len-1]);
}
}
}
void fun10_2_X(double number) //十進制小數部分轉二進制
{
int i,len=0;
int arry[N];
while(number)
{
int temp = (int)(number*2);
arry[len ]=temp;
if(len==N)
break; //控制小數點後不超過十位
number = 2*number-temp;
}
printf(".");
for(i=0;i<len;i )
{
printf("%d",arry[i]);
}
}
int main()
{
double number;
scanf("%lf",&number);
long t=(int)number;//整數部分
double m=number-t;//小數部分
fun10_2_Z(t);
fun10_2_X(m);
return 0;
}