C++ float double 的有效位
来源:互联网 发布:ps4网络设置dns 编辑:程序博客网 时间:2024/05/24 08:33
结论:
- 有些编译器 float的有效数字位是 8位 , 有些有效数字位是 7位
- 有些编译器double的有效数字位是 15位, 有些是 16位
- 注意printf(“%f”, x); // 默认输出6位小数(不要和有效数字混淆)
分析
C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算
无论是float还是double,在内存中的存储主要分成三部分,分别是:
(1)符号位(Sign): 0代表正数,1代表负数(2)指数位(Exponent): 用于存储科学计数法中的指数部分,并且采用移位存储方式(3)尾数位(Mantissa): 用于存储尾数部分
由图可知:
float 是 32位, 其中有23位用于存放尾数, 带有一个固定隐含位.. 所以float的有24个二进制有效位位数.
- 2^24共有8个十进制位. 所以有些编译器 float的有效数字位是 8位 , 有些有效数字位是 7位.(注意不是小数的位数, 是有效数字位)
double也一样,是64位, 其中有52位用于存放尾数, 一个固定隐含位. 共有 53个二进制有效位位数.
- 2^53次方有15个十进制位, 所以有些编译器double的有效数字位是15位, 有些是16位
阅读全文
0 0
- C/C++ float与double的有效数字位
- C++ float double 的有效位
- double 类型的有效位
- float double表示的有效位数
- 关于float和double的有效位数
- double float 有效位数
- float与double的位分配
- float,double 的范围和有效数字怎么算出来的?
- 如何判断一个float/double是不是一个有效的值
- 如何判断一个float/double是不是一个有效的值
- float与double有效数字问题
- 关于double类型数据保留有效位的一些理解
- 取double类型的几位有效数字
- 关于float有效位数为7位的研究
- c/c++: float和double、long double
- c/c++: float和double、long double
- c语言:用%f输出实数,只能得到6位小数及求float型数据的有效位数
- float--->double 的转换
- 【scala 语法基础】变量、函数、控制结构、数据类型
- linux ls 按照文件大小排序
- 人脸识别技术应用场景与前景
- 区块链学习-智能合约与ICO
- 51nod 1012 最小公倍数LCM【数论】
- C++ float double 的有效位
- Pycharm选择性忽略PEP8代码风格警告信息
- 从产品经理转型为产品经理兼项目经理,如何快速胜任?
- 斯坦福大学自然语言处理第四课 语言模型(Language Modeling)笔记
- bzoj4994: [Usaco2017 Feb]Why Did the Cow Cross the Road III
- html5 contenteditable 可编辑属性
- Android Api demo系列(16) (App>Fragment>Fragment Hide Show)
- [FAQ14802]插入耳机,倒计时拍照时,耳机跟speaker都可以听到倒计时声音
- 输入与输出 笔记