小数用二进制表示

简介: 小数用二进制表示

小数用二进制表示

步骤
  1. 将该数字乘以2,取出整数部分作为二进制表示的第1位
  2. 再将小数部分乘以2,将得到的整数部分作为二进制表示的第2位
  3. 循环进行,如果小数部分为0,则结束
  4. 小数部分出现循环,无法停止,则在误差允许范围内,用有限位近似表示
#include <stdio.h>
#define STAGE_N 20
int main(){
  double num;
  printf("decimal num: ");
  scanf("%lf",&num);
  char binary[STAGE_N]={0};
  int i,j;
  double temp = num;
  
  for(i=0;i<STAGE_N;i++){
    temp = temp*2;
    if(temp >= 1) {
      binary[i] = 1;
      temp -= 1;
      if(temp < 0.000001) break;
    }
  }
  
  int n = (i<STAGE_N)?i:i-1;
  printf("0.");
  for(j=0;j<=n;j++){
    printf("%d",binary[j]);
  }
  
  return 0;
}
相关文章
|
5天前
十进制小数转化为二进制小数
十进制小数转化为二进制小数
15 7
|
4月前
|
Python
十进制转二进制、八进制、十
十进制转二进制、八进制、十
|
C语言
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
132 0
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
二进制浮点数的加减法运算
二进制浮点数的加减法运算
|
存储 机器学习/深度学习 算法
C#实现十六进制和十进制相互转换【及不同进制表示】
在程序中,十六进制的表示形式通常为字符串;而十进制则为数字整型(本质的内存存储都是01二进制)。数字的进制表示一般使用的不多,通常最大的需求是进制之间的相互转换。C#中提供了内置的转换方法...
576 0
C#实现十六进制和十进制相互转换【及不同进制表示】
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!
787 0
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!