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

十进制小数转二进制原理

作者: 黄鹤的小姨子 | 来源:发表于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...无限循环下去。

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

    相关文章

      网友评论

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

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