美文网首页
十进制小数转二进制原理

十进制小数转二进制原理

作者: 黄鹤的小姨子 | 来源:发表于2019-07-19 16:25 被阅读0次

十进制转二进制的整数部分容易理解,但小数部分如何转换呢?

这里复习下进位计数制表示法:
比如 (11.5) 10 = (1011.1)2
(11.5) 10 = 1* 101 + 1* 100 + 5* 10-1
(1011.1)2 = 1* 23 + 0* 22 + 1* 21 + 1* 20+1* 2-1

所以对于任意十进制数的小数部分F转换为二进制都可以写为:

F = a1* 2-1 + a2* 2-2 + a3* 2-3 +... an*2-n
(基数为2,所以a1 到 an要么为0 要么为1)

比如 0.8 = a1* 2-1 + a2* 2-2 + a3* 2-3 +... an*2-n ,可以理解为0.8 包含了a1个2-1以及a2个2-2 ...。 求a1 a2... an

因为 0.8 / 2-1 = 1.6 所以a1 可取1.6 。 又由于基数为2, a1 到 an要么为0 要么为1。 所以a1 只能取1。

得出
F - a1* 2-1 = a2* 2-2 + a3* 2-3 +... an2-n
F - a1
2-1 = F - 1 * 2-1 = 0.6 * 2-1
0.6 * 2-1 = a2* 2-2 + a3* 2-3 +... an*2-n

因为 0.6 * 2-1/ 2-2 = 1.2 ,按照上面的方式得出a2 = 1
以此类推 得出a3 = 0,a4 = 0 ,a5 = 1,a6 = 1,a7 = 0,a8 = 0,a9 = 1...

0.8 = 1* 2-1 + 1* 2-2 + 0* 2-3 + 0* 2-4+ 1* 2-5...

由a1 a2... an表示成二进制 0.1100110011001100...无限循环下去。

计算机中小数又称为浮点数,分为尾数和指数部分,上面所求的就是尾数部分,由于计算机给尾数和指数所分配的位数有限,所以无法精确表示。

相关文章

  • 二进制与浮点数

    二进制 十进制小数转二进制小数 二进制小数转十进制小数 补数 补数可以简单对应到十进制中的相反数,如 10与-10...

  • 进制转换

    一.十进制(正数,含小数)转二进制 例:10.625(十进制)转二进制 十进制转二进制时,整数部分和小数部分采取不...

  • 十进制与二进制之间小数的转换

    一、十进制转二进制(小数部分乘以2的积取出整数部分,剩下小数部分进入下一步运算,直到小数部分为零) 十进制小数:0...

  • 二进制,八进制,十进制,十六进制转换

    十进制转二进制十进制转二进制 二进制转十进制十进制转二进制 二进制转八进制二进制转八进制 八进制转成二进制八进制转...

  • iOS-二进制、十进制、十六进制相互转化

    //十进制转十六进制字符串 //二进制转十进制 //十六进制转二进制 //十六进制转十进制 // 十进制转二进制...

  • 二进制与十进制的相互转换

    十进制转二进制 二进制转十进制

  • C++十进制小数转二进制

    之前经常接触的都是十进制整数转换二进制,记录一下十进制小数转化二进制的方法。小数分为整数区域和小数区域,以小数点相...

  • 二进制、十进制互转

    十进制整数 转 二进制数组 二进制字符串 转 十进制整数 二进制数组 转 十进制整数

  • 十进制小数转二进制原理

    十进制转二进制的整数部分容易理解,但小数部分如何转换呢? 这里复习下进位计数制表示法:比如 (11.5) 10 ...

  • Java浮点类型精度丢失问题

    一、问题 二、分析我们把十进制的0.3转为二进制 小数类型转化为二进制方法: 小数乘以2得到b,取b的整数位,如果...

网友评论

      本文标题:十进制小数转二进制原理

      本文链接:https://www.haomeiwen.com/subject/gkcslctx.html