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 + ……

  • 相关阅读:
    顺时针打印矩阵
    topK问题
    9. Palindrome Number(回文数)
    Spinner用法详解
    翻转字符串
    清雨的自助餐(斐波那契数列的应用)
    2. Add Two Numbers(链表尾插法)
    assign和weak的区别
    14-最长公共前缀
    12 13-int与罗马数字转换
  • 原文地址:https://www.cnblogs.com/lightmare/p/10398830.html
Copyright © 2011-2022 走看看