zoukankan      html  css  js  c++  java
  • 小数用二进制如何表示

    1. 小数用二进制如何表示

    首先,给出一个任意实数,整数部分用普通的二进制便可以表示,这里只说小数部分如何表示

    例如0.6

    文字描述该过程如下:将该数字乘以2,取出整数部分作为二进制表示的第1位;然后再将小数部分乘以2,将得到的整数部分作为二进制表示的第2位;以此类推,知道小数部分为0。 
    特殊情况: 小数部分出现循环,无法停止,则用有限的二进制位无法准确表示一个小数,这也是在编程语言中表示小数会出现误差的原因

    下面我们具体计算一下0.6的小数表示过程

    0.6 * 2 = 1.2 ——————- 1 
    0.2 * 2 = 0.4 ——————- 0 
    0.4 * 2 = 0.8 ——————- 0 
    0.8 * 2 = 1.6 ——————- 1 
    0.6 * 2 = 1.2 ——————- 1 
    …………

    我们可以发现在该计算中已经出现了循环,0.6用二进制表示为 1001 1001 1001 1001 …… 
    如果是10.6,那个10.6的完整二进制表示为 1010.100110011001……

    2. 二进制表示的小数如何转换为十进制

    其实这个问题很简单,我们再拿0.6的二进制表示举例:1001 1001 1001 1001 
    文字描述:从左到右,v[i] * 2^( - i ), i 为从左到右的index,v[i]为该位的值,直接看例子,很直接的

    0.6 = 1 * 2^-1 + 0 * 2^-2 + 0 * 2^-3 + 1 * 2^-4 + ……

  • 相关阅读:
    Palindrome Linked List 解答
    Word Break II 解答
    Array vs Linked List
    Reverse Linked List II 解答
    Calculate Number Of Islands And Lakes 解答
    Sqrt(x) 解答
    Find Median from Data Stream 解答
    Majority Element II 解答
    Binary Search Tree DFS Template
    188. Best Time to Buy and Sell Stock IV
  • 原文地址:https://www.cnblogs.com/zouhong/p/15417477.html
Copyright © 2011-2022 走看看