您的位置:首页 > 其它

利用函数将一个浮点型变量转化为二进制

2017-02-22 07:19 232 查看
利用函数将一个浮点型变量转化为二进制

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void IntDecToBin(int num, char s[], int *count)
{
if(num==0)
{
*count = 0;
return ;
}
else
{
IntDecToBin(num/2,s,count);
s[*count]='0' + num%2;
(*count)++;
}
}
/***************************************************************************

***************************************************************************/
void FraDecToBin(float num,char s[],int *count, int precision)
{
int Int = 0, temp = 0;

if(0==num)
{
s[0]='0';
s[1]='\0';
return;
}
for(*count=0;precision>0;precision--,(*count)++)
{
if(0==num)
{
s[*count]='\0';
return;
}
num = num*2;
Int = (int)num;
s[*count]='0' + Int;
num = num - Int;
}

for(temp=(*count)-1;s[temp]=='0';temp--)//契峭壓娼業袈律坪硫何謹0
{
s[temp]='\0';
}
}
/***************************************************************************

***************************************************************************/
void FloatToInt()
{
int count=0, precision = 10;
float num;
char IntStr[50], FraStr[50], Str[50];
char a[]=".";

memset(IntStr,0,50);
memset(FraStr,0,50);
memset(Str,'\0',50);

scanf("%f",&num);
if(num==0)
printf("0\n");

IntDecToBin((int)num, IntStr, &count);
IntStr[count]='\0';
num = num - (int)num;
FraDecToBin(num, FraStr, &count, precision);
FraStr[count]='\0';

strcat(Str, IntStr);
strcat(Str, a);
strcat(Str, FraStr);
printf("%s\n",Str);
}

int main()
{

FloatToInt();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐