利用函数将一个浮点型变量转化为二进制
2017-02-22 07:19
260 查看
利用函数将一个浮点型变量转化为二进制
#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;
}
#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;
}
相关文章推荐
- 利用函数将一个浮点型变量转化为二进制
- 利用函数将一个浮点型变量转化为二进制
- 1. 给定两个整形变量的值,将两个值的内容进行交换。 2. 不允许创建临时变量,交换两个数的内容(附加题) 3. 求10 个整数中最大值。 4. 写一个函数返回参数二进制中 1 的个数
- 1. 给定两个整形变量的值,将两个值的内容进行交换。 2. 不允许创建临时变量,交换两个数的内容(附加题) 3. 求10 个整数中最大值。 4. 写一个函数返回参数二进制中 1 的个数
- 写一个好函数,功能:求C风格字符串长度;要求:不调用其他函数,不使用变量
- 判断一个整数转化成二进制有多少个1
- 一个利用堆栈实现的正整数10进制向16进制的转化程序
- 能把汉字转化为拼音的一个函数
- 利用Win32的网络函数创建一个网络浏览器
- 利用Win32的网络函数创建一个网络浏览器- -
- 利用Win32的网络函数创建一个网络浏览器
- 利用Win32的网络函数创建一个网络浏览器
- 利用反射机制得到一个类的方法,变量,以及构造函数
- 利用Win32的网络函数创建一个网络浏览器
- 一个词组转化成拼音的函数
- 类中只有 成员变量 和 一个成员函数表
- 利用Win32的网络函数创建一个网络浏览器
- 一个很不错的汉字转化为拼音的函数 php
- 能把汉字转化为拼音的一个函数
- utf8编码转化为unicode的一个精彩函数