小数用二进制表示

简介: 小数用二进制表示

小数用二进制表示

步骤
  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;
}
目录
打赏
0
0
0
0
5
分享
相关文章
|
10月前
二进制与十六进制,二进制与八进制之间的相互转换技巧
二进制与十六进制,二进制与八进制之间的相互转换技巧
750 0
|
6月前
二进制转十进制
二进制转十进制
139 13
|
10月前
|
十进制转二进制、八进制、十
十进制转二进制、八进制、十
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
170 0
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!
1466 0
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!
负数的二进制表示方法
今天在看base64编码转换时,既然对负数的二进制表示有些遗忘,在网上找了一下资料,贴出来已备在此遗忘: 假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
857 0
C# 进制转换(二进制、十六进制、十进制互转)
原文:C# 进制转换(二进制、十六进制、十进制互转) //1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.
2736 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等