ieee-754相关内容

如何确定IEEE-754单精度和双精度格式?

我对这些是如何确定的感兴趣: 单精度具有:e的8位和余数(23位)是尾数 双精度:e和rest的11位(52位)为尾数 ofc中有1位用于签名. 那么如何确定尾数是多少位数,e是多少位数.我想这是一个菜鸟问题,但我想知道答案. 解决方案 如果您自己开发格式,则可以根据需要的精度或更大的范围来确定指数和尾数的位数.由于IEEE-754是为通用设计的,因此他们必须选择在大多数情况 ..
发布时间:2020-11-26 04:18:25 其他开发

浮点数:“前导1在有效位数上是'隐含的'." -...嗯?

我正在学习有关浮点IEEE 754数字的表示形式,我的教科书上说: 要把更多的位包装到有效位数中,IEEE 754会将标准化的二进制数的前1位隐含起来.因此,该数字实际上单精度为24位长(分别表示1和23位小数),而双精度则为53位长(1 + 52). 我在这里不明白“隐式"是什么意思……显式位和隐式位之间有什么区别?并非所有数字都具有该位,而不论其符号是什么? 解决方案 是的 ..
发布时间:2020-11-26 04:18:22 其他开发

IEEE float十六进制424ce027要浮动吗?

如果我有一个IEEE浮点十六进制424ce027,如何将其转换为十进制? unsigned char ptr[] = {0x42,0x4c,0xe0,0x27}; 怎么办? float tmp = 51.218899; 解决方案 也许... float f = *reinterpret_cast(ptr); 尽管在我的x86机器上,我还必须反转字 ..
发布时间:2020-11-23 00:57:08 C/C++开发

为什么数字(不能)在双精度IEEE754中表示?

我对 IEEE754 双精度感到困惑,我考虑了两个问题: 1. 为什么间隔-2 54 ,-2 54 + 2,-2 54 +4 ... 2 54 是可代表的吗? 2..为什么2 54 +2无法表示? 你能帮我吗?我了解 IEEE754 的工作方式-但是,看到存在问题. 解决方案 IEEE 754 double的有效位(或尾数)中有53位. − 2 54 可以精确表示为, ..
发布时间:2020-11-08 22:38:30 其他开发

了解非规范化浮点数的用途

阅读Goldberg的每位计算机科学家应该了解的有关浮动的知识-点算术,我发现了一些我不太了解的东西. 他指出,具有非规格化数字是好的,因为x = y当且仅当x-y==0时.然后他举了一个例子: 如果(x!= y)则z = 1/(x-y) 现在,假设x-y是非正规数.那么1/(x-y)很有可能成为inf.如果我们一开始就没有非规范化的数字,那么结果是一样的. 即使我要执行除 ..
发布时间:2020-11-08 22:36:07 其他开发

为什么console.log不显示分配的var的IEEE-754浮点值?

我知道JavaScript中的浮点值是以IEEE 754中指定的二进制base-2格式存储的.对我来说,这意味着当我将文字值.1分配给变量时,实际存储的值将是0.100000001490116119384765625(或诸如此类的高精度数字-我的数学可能是错误的). 但是与该假设相反,存储值的console.log不能反映这一点.如下代码: var a = 0.1; console.log( ..
发布时间:2020-11-08 22:28:01 前端开发

32位IEEE 754单精度浮点数到十六进制

我已经学习了如何将数字转换为浮点数(在二进制,八进制和十六进制之上),并且知道如何将数字转换为浮点数. 但是,在浏览工作表时,遇到了以下问题: 使用32位IEEE 754单精度浮点以十六进制表示-12.13. 我尝试查看自己拥有的资源,但仍然不知道如何回答上述问题.给出的答案是 0xc142147b . 编辑:对不起,您不清楚,但我想知道如何手动完成此工作,而不是对其进行编 ..
发布时间:2020-11-08 22:26:59 其他开发

快速找到以2为底的对数的整数部分

什么是计算浮点数以2为底的对数的整数部分的有效方法?像 N = ceil( log2( f )) 或 N = floor( log2( f )) 对于浮点f.我猜这可能以某种方式非常有效地实现,因为可能只需要访问浮点指数即可. EDIT2:我对精确度并不主要感兴趣.我可以容忍+ -1的错误.我以列举两个变体为例,因为一个变体在计算上可能比另一个变体便宜(但我不知道). ..
发布时间:2020-11-08 22:20:03 C/C++开发

为什么这个循环永远不会结束?

可能重复: 在C#中比较双精度值的问题 我在其他地方读过它,但是真的忘记了答案,所以我再次在这里问.无论您使用任何语言编写代码(我都使用C#,C ++,Java ...对其进行测试),此循环似乎都永无止境: double d = 2.0; while(d != 0.0){ d = d - 0.2; } 解决方案 浮点计算不是十分精确.您会收到一个表示错误,因为0.2没有作 ..
发布时间:2020-11-08 22:12:31 其他开发

将float转换为bigint(又是可移植的方式来获取二进制指数和尾数)

在C ++中,我有一个bigint类,可以容纳任意大小的整数. 我想将大浮点数或双精度数转换为bigint. 我有一个可行的方法,但这有点不合常理.我使用IEEE 754数字规范来获取输入数字的二进制符号,尾数和指数. 这是代码(这里忽略符号,这并不重要): float input = 77e12; bigint result; // extract sign, expo ..
发布时间:2020-11-08 22:00:35 C/C++开发

使用IEEE-754单精度可以表示多少个归一化数字?

基于IEEE-754单精度标准,如果我知道以下内容,我怎么知道可以表示多少个标准化数字: 1位符号 8位为指数 23个尾数 是否存在可以应用于任何其他浮点系统的规则? 解决方案 您已经确定了表示形式各部分的位数,因此您已经到了一半.有: 2 ^ 1 = 2种可能性 2 ^ 8 = 256个指数位的可能性,其中两个保留给非法线:全零的指数字段用于浮点零和次正态 ..
发布时间:2020-11-08 21:57:38 其他开发