问题标签 [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.
floating-point - 减少尾数位宽
好吧,我感到很尴尬,我自己不能得到这个,但是..
我怎样才能减少浮点数的尾数(和指数)位?
我正在训练一个(卷积)人工神经网络(我正在 FPGA 上实现它),我想研究尾数(和指数)位宽与 CPU 上的测试(和训练)精度之间的关系(和图形处理器)。下一步是将我的浮点数转换为定点表示(这就是我在 FPGA 上使用的),然后看看情况如何。
其他人已经进行了类似的研究([Tong, Rutenbar and Nagle (1998)] 和 [Leeser and Zhao (2003)]),因此应该有一种方法可以做到这一点,尽管“如何”还没有我清楚。
最后一点,我在 Lua 中编程,但我可以很容易地将 C 的东西包含ffi
在 LuaJIT 中。
binary - 二进制 -> 有符号尾数
如何在有符号尾数中写入 0xFA。我将其转换为二进制 = 1111_1010。不知道从这里去哪里。
问题是“如果寄存器文件总共有 8 位宽度,请在有符号尾数中写入以下内容。”
此外,对带符号尾数的解释会很棒!
python - 浮点表示的模拟
我正在学习 Python 入门课程,我们有一个作业要求我们模拟浮点数的存储方式。
基本上,我们必须演示 5 位尾数。例如,您输入123
,它必须以12300
. 如果您输入12345678
,它必须以12345
. 如何才能做到这一点?有这个功能还是只是一个格式化问题?请记住,这是一门入门课程,我们不允许使用任何外部库。
c - printf 中的尾数值略有偏差
我对 C 语言完全陌生。试图在这里接机。希望你们能帮助我一点,如果我问了一些愚蠢的问题,请提前道歉,但我真的找不到这个具体问题的任何答案。也对不起我的英语。
无论如何,下面是我的代码,对我来说没问题。
printf 结果显示
但是当我增加 Crit_Dmg 和 Magic_Dmg 值更高时,尾数根据我的输入不准确......
例如我改为
printf 似乎如下
为什么尾数没有按照我的输入出现?我如何解决它?
java - Java/Android - 将 DecimalFormat 设置为仅显示尾数
我只想显示数字的尾数,而与指数无关。
12.4e-6 after formatting => 12.4
12.4e-12 after formatting => 12.4
手动进行计算是微不足道的。但问题是我需要使用 DeciamalFormat 类,因为我必须将它作为参数提供给另一个类。我试过这个:
如果我删除 E 符号,则不会计算尾数。有什么办法DecimalFormat
只用这个来显示mantissa
吗?
c - 如何从 32 位浮点数中提取符号、尾数和指数
所以我得到了一个任务,我必须从 uint32_t 给出的浮点数中提取符号、指数和尾数。我必须在 C 中做到这一点,正如你所料,我该怎么做?
对于符号,我会搜索 MSB(最高有效位,因为它告诉我我的数字是正数还是负数,取决于它是 0 还是 1)
或者让我们直接进入我的想法,我可以将我的 32 位数字“拼接”成三个部分吗?
获取 msb/sign 的 1 位,然后是代表指数的 1 个字节,最后是尾数的 23 位
它可能不会那样工作,但你能给我一个提示/解决方案吗?我知道freexp,但我想要一个替代方案,在那里我学到了更多的C。谢谢。
floating-point - 负数的浮点表示
使用....
尾数的符号位 二进制补码中的 8 位指数 23 位尾数
编码如下:-28.625
有人可以告诉我最简单的方法吗...讲师不是很有帮助!
floating-point - 大整数到单点浮点数
我试图将一个大整数转换为 32 位单精度浮点数,但我无法解决我遇到的这个问题。如果大整数的二进制表示大于 23 位尾数怎么办。
例如,取整数 1,671,277,287
其二进制表示为 01100011100111011010101011100111
我的理解是,您将小数位向左移动,直到它的左侧只有 1 位,如下所示:
01.100011100111011010101011100111
我的问题是这个尾数是 30 位,单精度浮点数只有 23 位尾数的空间。我试图寻找这个特定的问题,但我没有找到任何东西。我将如何解决这个问题?
编辑:找出一些信息,以防其他人有这个问题。单精度浮点的默认舍入是“四舍五入到最接近,与偶数相关”。另一个 StackOverflow 评论了如何轻松地做到这一点。
c++ - 如何将双精度转换为 64 位 ieee754?
我有这个代码:
我想获得双精度的 64 表示。
我需要改变什么?
c++ - 如何在c ++中对double或float的尾数和指数部分进行操作(快速)?
我使用 c++ 来计算各种类型的特殊函数(例如 Lambert 函数、求值反转的迭代方法等)。在许多情况下,直接使用尾数和指数显然有更好的方法。
我找到了很多如何提取尾数和指数部分的答案,但是所有这些都只是“计算速度不是很有效的学术案例”,对我来说有点无用(我使用尾数和指数操作的动机是改进计算速度)。有时我需要调用一些特定的函数大约十亿次(非常昂贵的计算),所以每次保存的计算工作都很好。并且使用将尾数作为双精度返回的“freexp”不是很合适。
我的问题是(对于具有 IEEE 754 浮点的 c++ 编译器):
1)如何读取浮点/双精度尾数的特定位?
2)如何将整个尾数读入浮点/双精度的整数/字节?
3) 与 1)、2) 相同的问题。
4) 写作题与 1)、2)、3) 相同。
如果我直接使用尾数或指数,我的动机是更快的计算。我想必须有一个非常简单的解决方案。