zoukankan      html  css  js  c++  java
  • 【深入浅出-JVM】(3):浮点数

    -5 浮点数推导

    二进制转十进制

    1 10000001 01000000000000000000000

    1 10000001 101000000000000000000000 如果指数位不全为 0 则尾数位首位+1 ,如果指数位全为 0,则尾数位首位+0

    十进制 = -1 * 2^(129-127) * (1 * 2^0 + 1 * 2^-2) = -1 * 4 * 1.25 = -5

    十进制转二进制

    5 = 101(B) = 1.01 * 2^2 指数为 2,则指数段的值为 2+127 = 129 = 10000001 因为不全为 0 尾数部分首位的 1 去掉,然后右侧补全 0

    1 负数

    1 10000001 指数段的值为 2+127=129

    1 10000001 101 尾数段为 101

    1 10000001 01 因为不全为 0 尾数部分首位的 1 去掉

    1 10000001 01000000000000000000000 然后右侧补全 0,尾数部分一共23 位

    十进制(整数)转二进制(整数)

    除2取余, (直到商为 0) ,逆序

    789=1100010101(B)

    394 1

    197 0

    98 1

    49 0

    24 1

    12 0

    6 0

    3 0

    1 1

    0 1 (最终 商 < 1)

    1100010101

    推理: A = abcdef(B)

    A = f * 2 ^ 0 + e * 2 ^ 1+ d * 2 ^ 2 + c * 2 ^ 3+ b * 2 ^ 4 + a * 2 ^ 5

    A/2 = e * 2 ^ 0+ d * 2 ^ 1+ c * 2 ^ 2 + b * 2 ^ 3 + a * 2 ^ 4 除以 2 留余数得到 f

    .... 除以 2 留余数得到 d

    ..... 除以 2 留余数得到 a

    反过来写就是 abcdef

    十进制纯小数转换成二进制纯小数

    乘2 取整,直到小数部分为 0(或者达到所要求的精度…),顺序排列

    0.8125 = (0.1101)(B)

    1.6250 1

    1.25 1

    0.5 0

    1.0 1

    十进制小数转换成二进制小数

    整数部分与小数部分合并

    (789.8125) = 1100010101.1101(B)

    float 特殊值

    |含义|数值|

    |--|--|

    |正无穷 | 0 11111111 00000000000000000000000 |

    |负无穷 | 1 11111111 00000000000000000000000|

    |NaN | 0 11111111 10000000000000000000000|

    |最大浮点数 | 0 11111110 11111111111111111111111|1.11111111111111111111111 * 2^(254-127)

    |最小规范化正浮点数 | 0 00000001 00000000000000000000000|1.0 * 2^1-127|

    |最小正浮点数 | 0 00000000 00000000000000000000000|

    |0 | 0 00000000 00000000000000000000000|

    注意

    • float最大精度 小数点后 6 位

    • 浮点数 0.99 根本没办法用二进制表示 ,无穷多的 11111 只有 0.5 倍数的可以被二进制科学计数法表示


    感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,您的鼓励是作者写作最大的动力。

    作 者 : @mousycoder

    原文出处 : http://mousycoder.com/thinking-in-jvm/3/

    我是浩哥,希望我的思考能帮到您!
  • 相关阅读:
    3294 [SCOI2016]背单词
    P4551 最长异或路径
    BZOJ 4260: Codechef REBXOR
    P2322 [HNOI2006]最短母串问题
    P2444 [POI2000]病毒
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    BZOJ 3942: [Usaco2015 Feb]Censoring
    EZOJ #77
    EZOJ #73
    547D Mike and Fish
  • 原文地址:https://www.cnblogs.com/mousycoder/p/11189640.html
Copyright © 2011-2022 走看看