(C语言)实现对任意浮点型数据从十进制到二进制的转换
输入任意字符型数据,并输入小数点保留位数,输出其二进制形式,代码如下:
1
#include <stdio.h>
2
#include <math.h>
3
void printBinaryInt(unsigned long);
4
void printBinaryFloat(float,int);
5
int main(void)
6
{
7
float num;
8
int len;
9
printf("Input the number you want to change:");
10
scanf("%f",&num);
11
printf("\nInput the length after.");
12
scanf("%d",&len);
13
14
printf("\nAfter changed,The result is:");
15
printBinaryFloat(num,len);
16
return 0;
17
}
18
void printBinaryInt(unsigned long n)
19
{
20
int r;
21
r=n%2;
22
if(n>=2)
23
printBinaryInt(n/2);
24
putchar(r?\'1\':\'0\');
25
26
return ;
27
}
28
void printBinaryFloat(float n,int len)
29
{
30
int m;
31
float f;
32
m=(int)n;
33
if(n<0.0)
34
putchar(\'-\');
35
printBinaryInt((int)fabs(n));
36
37
f=fabs((float)(n-(float)m));
38
if(f>0.0)
39
{
40
putchar(\'.\');
41
for(int i=0;i<len;i++)
42
{
43
f*=2.0;
44
//putchar((int)f);
45
printf("%d",(int)f);
46
if(f>=1.0)
47
f-=1.0;
48
}
49
}
50
return ;
51
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51
