二进制32浮点数(IEEE)的前导位
leading bit in binary32 float(IEEE)
问题的背景- binary32 float的规格
我的问题是关于假设,第一个(前导)位总是1,所以我们不需要存储它。这是事实,但它在数字上还有另一个作用……我们知道它从哪里开始。所以在提取了第一个非零比特之后,我们不知道数字从哪里开始,除非后面有另一个非零比特。
在那篇wiki文章中,他们使用数字(1.100011)二进制。分数是100011,我们可以毫无问题地把这个数算出来。但是,二进制(1.000011)又如何呢?取出1,得到000011,由于前导零不能存储在零初始化位域中,所以得到11。但是,当我们想要重建它时,会发生什么呢?我们得到1.11,这是错误的。
那么我们如何自由地提取任意数的前导位呢?
但是,二进制(1.000011)呢?取出1,得到000011,由于前导零不能存储在零初始化位域中,所以得到11。
实际上存储前导零。存储的是000011,当把1加回去时,就回到了开始的地方。存储前导零(在前导1被删除之后)是使它工作的原因。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 使用提升将数据从 PyObject 复制到浮点数 *
- 使用浮点数和双精度数的非常小数字的数学
- 使用英特尔内联函数将打包的 8 位整数乘以浮点数向量
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 返回浮点数的小数位数
- txt 文件中浮点数的最大和最小值
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 将浮点数转换为无符号字符数组并打印出来
- 十六进制到浮点数 IEEE 754 双精度 c++
- 浮点数在比 IEEE 754 更小的 c++ 范围内
- 为什么IEEE-754浮点数不能在平台之间交换
- 通过作弊快速比较大于零的 IEEE 浮点数
- 单个精度浮点数上的第 24 个分数位在哪里?IEEE 754
- c++使用IEEE 754将浮点数转换为基数10
- 二进制32浮点数(IEEE)的前导位
- IEEE浮点数到精确base10字符串
- IEEE 754浮点数,1<的最大数是多少?