美文网首页
float 和 double 竟然这么好玩

float 和 double 竟然这么好玩

作者: _笑口常开 | 来源:发表于2020-05-28 08:05 被阅读0次

参考:
老大说:谁要再用double定义商品金额,就自己收拾东西走
都工作两年了,还不知道浮点数如何转二进制?
【小知识】float是如何在计算机中存储的

记录下自己的思考:

- binaryconvert 可以直接转换

binaryconvert.png
- 为什么计算机的负数用二进制取补码进行表示?

比如-2,直接用原码进行表示为1 29个0 1 0,加上1,直接相加的话就变成 1 29个0 1 1,结果变成-3,显然不对;
用补码进行表示的话,-2就变成1 29个1 0 1再加上1,也就是1 30个1 0,这个时候再加上1,结果就是1 31个1,而-1的补码正好是1 31个1,结果是正确的。
所以,补码的出现是为了应对计算机大量的二进制加减法的运算,不需要判断数值前面的正负号。

- 为什么指数部分(Exponent)的范围是-127~128?

首先128,是因为8位全1,是加127的结果,减掉127,就是128;
然后-127,是因为负的8位全1,是补码表示,先要减去1,再减掉127,就是127。
最后的表示都是,指数部分加上127,127这个值不明白是怎么定出来的。

- 尾数部分是小数部分取23位,不够的话进行补齐,超过(无限不循环,有限超过23)进行截断,导致了精度丢失。


代码实践

- int 最大值是 0x 7fffffff

0x7fffffff.png

- float最大值与最小值,最小值是大于0的

float.png

相关文章

  • float 和 double 竟然这么好玩

    参考:老大说:谁要再用double定义商品金额,就自己收拾东西走都工作两年了,还不知道浮点数如何转二进制?【小知识...

  • 原始类型包装类解读(Float、Double)

    Double和Float包含的方法大致一样,所以这里重点看Float,Double可以参照Float。 Float...

  • 科学计算

    向上取整:float ceilf(float); double ceil(double); 向下取整:float ...

  • 取整 四舍五入

    向上取整:float ceilf(float); double ceil(double); 向下取整:float...

  • iOS中的round/ceil/floorf函数

    extern float ceilf(float);extern double ceil(double);exte...

  • round和ceil使用详情

    extern float ceilf(float);extern double ceil(double);exte...

  • 常用函数

    extern float ceilf(float); extern double ceil(double); ex...

  • 提示60-61

    第60条:如果需要精确的答案,请避免使用float和double float和double类型主要是为了科学计算和...

  • Double

    Double和Float包装类是滴double、float基本类型的封装,它们都是Number的子类。 Doubl...

  • float与double的精度范围

    float与double的范围和精度 1. 范围 float和double的范围是由指数的位数来决定的。 floa...

网友评论

      本文标题:float 和 double 竟然这么好玩

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