问题标签 [mantissa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 从 C++ 中的符号、指数和尾数部分创建 NaN 浮点值
我需要在 C++ 中创建一个具有 NaN 值的浮点变量。我还需要能够看到哪个 NaN 的值更大。要比较 NaN,您需要查看浮点数的尾数部分。使用标准创建 NaN
方法导致 NaN 具有相同的尾数,即使 nanf 函数中使用了不同的字符串。通过从位模式的基本部分创建 NaN 应该证明可以提供不同的尾数,因此可以对尾数的大小执行简单的排序。
floating-point - 将浮点数转换为其二进制表示时遇到问题
以下是我正在尝试遵循的教程。
当试图将数字转换回其二进制表示时,我弄错了。有人可以告诉我我做错了什么吗?
二进制表示:
自从..
指数为..
因此二进制表示应该是:
但为什么我会以同样的方式转换 639.6875 得到正确答案?:
整数值的表示:
十进制值的表示:
合并和归一化:
归一化时,我们把基数直接放在第一个 1 的右边吧?将 127 偏置为指数,127+9 = 136:
二进制表示:
export - netezza 双精度输出截断值
我注意到 nzsql 和 'nzunload' 只是截断双精度列的尾数值。这是问题:
从表1中选择tot_amt
;
而当我使用 Aginity 等其他客户端进行数据分析时 - 我得到的输出是
我还发现当 netezza 在 3 个尾数位后遇到 0 时会发生“截断”。
我们正在尝试将此数据库迁移到 oracle,由于这个问题,整个项目都被搞砸了,客户不信任我们的迁移脚本。有没有人遇到过这个问题?唯一的解决方法,即使是 frmo IBM 工程师也是强制转换它TO_CHAR( '999,999.999', col )
如果我必须为数十亿行执行此操作,这将杀死卸载脚本。
rounding - 带有 LSB 错误的浮点加法
我正在用 Verilog 实现一个硬件双精度加法器。在验证阶段,当我将硬件输出与 MATLAB(或 C)双精度加法输出进行比较时,我发现 LSB 不匹配的一些奇怪情况,考虑到我使用相同的舍入模式(舍入到最接近的偶数) . 我的问题是关于 C 计算的准确性,它在进行舍入时是否真的准确,还是仅限于某些 CPU 架构(32 位或 64 位)?
这是一个例子,
A = 0x62a5a1c59bd10037 = 1.5944933396238637e+167
B = 0x62724bc40659bf0c = 1.685748657333889e+166 = 0.1685748657333889e+167
正确的输出(只需手动添加上述实数)
= 1.7630682053572526e+167 = 0x62a7eb3e1c9c3819(这与我的硬件匹配)
当我尝试在 C 中做 A+B 时,结果等于
= 1.7630682053572525e+167 = 0x62a7eb3e1c9c3818
当我尝试使用此应用程序检查中间操作时 http://www.ecs.umass.edu/ece/koren/arith/simulator/FPAdd/
我可以从尾数加法中看到 C 没有正确进行舍入(舍入到最接近的偶数)。在这种情况下,尾数应通过加一来四舍五入。知道为什么会这样吗?
matlab - 在matlab中计算科学数的尾数和指数
我想在 mat lab 中找到一个数字的尾数和指数。有没有计算它们的函数或方法?
例如,当数字为 0.0005 时,此函数返回 5 表示尾数,-4 表示指数
谢谢你
python - 如何扩展/附加具有来自变量的多个索引的列表?
我正在尝试创建一个 binary32 浮点到十进制转换器,它由八位指数和二十四位尾数组成。我有exponent = []
和mantissa = []
。如果用户输入我想要添加010000111111101101000000000000000
索引一到八,value
并添加exponent
索引九到三十二。我目前有以下意大利面条代码来执行此操作:value
mantissa
因此,与其单独附加每个索引,我想知道是否有一种方法可以将它们全部添加到列表中。我尝试了以下extend
方法:
exponent.extend(value[1, 2, 3, 4, 5, 6, 7, 8])
也没有逗号
exponent.extend(value[1], value[2], value[3], value[4], value[5], value[6], value[7], value[8], )
然后我意识到extend
只需要一个论点。
exponent.extend(value[1-8])
这似乎减去了一和八。
我试过exponent = {}
哪个是我相信的系列?然后尝试exponent.update
用逗号跟随多个索引。然后告诉我它只支持一个论点。
关于如何将多个索引添加value
到列表中的任何其他建议?
floating-point - 乘法顺序改变结果。为什么?
我们目前正在试验浮点数,并遇到了 Fortran 中的一个程序,我们无法弄清楚会发生什么。
问题:为什么会产生不同的结果?
我们认为这可能与浮点数(尾数、指数等)的表示模型以及计算机如何对数字进行四舍五入有关,但我们不确定。
有人可以详细解释这是如何工作的吗?
exponent - 尾数和指数 - 带小数的负数(超过 0.5)
这是我的问题。我正在做一些工作,看到两个不同的答案。我正在使用计算器(在线)来检查我的答案,它与我应该得到的答案相冲突,我需要看看哪个是正确的。问题是:
-6.25
我计算出 6.25,然后取二进制补码。
6.25 --> 0110.001
尾数 --> 0.11000100000 指数--> 0011
我的答案:二进制补码 1.00111100000 指数--> 0011
我应该得到的答案是:尾数 --> 1.11000100000 指数 --> 0011
你所做的只是在正尾数前面加一个 1 似乎没有意义。我知道,如果符号位为 0,则为正数,而 1 为负数。请让我知道哪个是正确的,或者如果其中任何一个是正确的,请告诉我?谢谢。只是想在继续之前确保我做对了。
c# - C#:指数格式说明符
我有一个双数:
我需要将其显示为
7.7725e-2
当我尝试使用它时:
它返回
7.7725e-002
怎么说尾数应该有一个符号而不是 3 ?
像这样的格式:
返回
5.0000e2
代替
5.0000e+2