十进制实数转换为二进制数

谁践踏了优雅 2023-07-12 14:41 93阅读 0赞

在这里插入图片描述

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a[32];
  5. int i=0,j=0,n;
  6. float f;
  7. int ten_2_int(int n,int a[]);
  8. int ten_2_dec(float f,int a[]);
  9. while(scanf("%f",&f)!=EOF)
  10. {
  11. if(f==0)
  12. break;
  13. n=ten_2_int((int)f,a);
  14. //输出整数部分
  15. if(n==0)
  16. printf("0");
  17. else
  18. for(i=n-1;i>=0;i--)
  19. printf("%d",a[i]);
  20. printf(".");
  21. n=ten_2_dec(f-(int)f,a);
  22. //输出小数部分
  23. i=0;
  24. while(i<=5)
  25. {
  26. printf("%d",a[i]);
  27. i++;
  28. }
  29. }
  30. return 0;
  31. }
  32. int ten_2_int(int n,int a[])//十进制整数转二进制
  33. {
  34. int i=0;
  35. while(n>0)
  36. {
  37. a[i]=n%2;
  38. n=n/2;
  39. i++;
  40. }
  41. return i;
  42. }
  43. int ten_2_dec(float f,int a[])//十进制小数转二进制
  44. {
  45. int i=0;
  46. while(i<6)
  47. {
  48. f=f*2;
  49. a[i]=(int)f;
  50. f=f-a[i];
  51. i++;
  52. }
  53. return i;
  54. }

发表评论

表情:
评论列表 (有 0 条评论,93人围观)

还没有评论,来说两句吧...

相关阅读