问题标签 [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.

0 投票
1 回答
3414 浏览

time - 着色器时间统一 - clock_gettime 被截断

使用clock_gettime将此函数获取时间作为双倍:

将其发送到着色器需要转换为浮点数。尾数溢出并在通往着色器的途中被截断。

例子:

作为双 = 1330579093642.441895

作为浮点数 = 1330579111936.000000

由于截断,浮点值长时间停留在单个数字上。

似乎 res.tv_sec 中的秒值对于浮点数来说也太大了,它也在通往 GPU 的途中被截断。

试图测量自应用程序启动以来的时间,我很快遇到了同样的问题。

那么将运行时间值放入着色器的最佳方法是什么?linux 世界中的跨平台(如 IOS、Android、Linux)。

0 投票
1 回答
26204 浏览

matlab - 在 Matlab 中,如何将变量用于科学计数法中的数字(matissa 和指数)?

我正在使用Matlab并使用科学记e数法中的数字,这些数字用指数的字母表示。Matlab中的一个例子:

现在想使用科学计数法的数字,但使用变量来保存尾数指数的值(分别为左侧和右侧e)。e如果变量名不与指数的字母合并,我不明白如何做到这一点。例如:

这还能做吗?或者我必须使用手动方法:

0 投票
2 回答
1451 浏览

java - 在 Java 中用尾数解析浮点数

使用标准 JavaDouble类来解析带有尾数的浮点数似乎省略了指数中的 + 号。

例如:

有什么方法可以使用 Double 获得 + 符号,而无需字符串后处理?

BigDecimal门课做得更好,例如

但它通常比 慢Double,这在密集处理中表现出来。

0 投票
3 回答
1869 浏览

algorithm - 为什么标准化数字的最高有效位始终为 1?

Wikipedia 中的 Significand 条目

当以二进制工作时,有效数字的特征在于其二进制数字(位)的宽度。因为对于标准化数字,最高有效位始终为 1,所以该位通常不存储,称为“隐藏位”。根据上下文,隐藏位可能会或可能不会计入有效数字的宽度。例如,相同的 IEEE 754 双精度格式通常被描述为具有 53 位有效位(包括隐藏位)或 52 位有效位(不包括隐藏位)。隐藏位的概念仅适用于二进制表示。IEEE 754 将精度 p 定义为有效数字中的位数,包括任何隐含的前导位(例如,双精度格式的精度 p 为 53)。

为什么归一化数字的最高有效位始终为 1?有人可以用一个例子来解释吗?

0 投票
3 回答
20676 浏览

java - 如何在 Java 中使用 double to int cast

我是 Java 新手,想知道 double to int cast 是如何工作的?我知道通过取低 32 位来 long 到 int 很简单,但是 double(64 位)到 int(32 位)呢?二进制中 double 的那些 64 位是双精度浮点格式(尾数),那么它如何在内部转换为 int 呢?

0 投票
0 回答
558 浏览

android - 十进制值的 Android EditText 不允许更改尾数

在我的 android 应用程序中,我使用 EditText 作为十进制值:

我用

用一个值填充这个 EditText。

现在的问题是像 1.0E-9 这样的值。可以更改指数,但除了删除数字之外,不能更改尾数。有谁知道解决方案(除了明显不使用 inputType numberDecimal)?

0 投票
3 回答
612 浏览

c - 将尾数作为位返回

我的c代码有点麻烦。我正在尝试提取符号、指数和尾数。到目前为止,它适用于符号和指数。问题从尾数开始。例如,我们以-5.0为例。符号1位,指数8位,尾数23位。这是-5.0的二进制表示法:

1 10000001 01000000000000000000000

1 = 符号

10000001 = 指数

01000000000000000000000 =尾数。

我想把尾数的部分还回去。

我得到的结果是负数。我不知道为什么它不起作用。你能帮忙找出问题吗?

关于萩

0 投票
4 回答
216 浏览

javascript - 在javascript中将整数转换为数字的小数部分的最有效方法是什么?

我想使用javascript将整数转换为数字的小数部分。

例如:

  • 10030 -> 0.10030

  • 123 -> 0.123

我想出了两种方法:

convertIntegerPartToFractionalPart1 不会产生 100% 准确的结果,例如 132232 转换为 0.13223200000000002。但是,在我的 MacBook Pro 上的 node.js 下,convertIntegerPartToFractionalPart1 的速度是 convertIntegerPartToFractionalPart2 的两倍多。(convertIntegerPartToFractionalPart1 的 1000000 次运行耗时 46 毫秒,convertIntegerPartToFractionalPart2 的 1000000 次运行耗时 96 毫秒)

有没有更好的方法来做到这一点?

0 投票
1 回答
179 浏览

perl - Perl 尾数与其他双精度数不同

我正在尝试以浮点数进行扫描: 13.8518009935297 。第一个例程是我自己的,第二个是 MacOSX libc 的 strtod,第三个是 GMP 的 mpf_get_d(),第四个是 perls numeric.c:Perl_my_atof2()。

我使用这个片段来打印尾数:

四个函数的返回值是:

前三个函数之间的区别在于四舍五入。然而 perl 的尾数是完全不同步的。

如果我再次将所有四个双精度数打印到一个字符串,我会得到相同的十进制双精度数,数字似乎是相等的。

我的问题:my-func、strtod、GMP 之间的区别是四舍五入。但是,为什么 perl 的尾数如此不同步,但是,如果转换回十进制,它仍然会再次成为相同的数字。差为 22,因此应以小数形式注明。我该如何解释?

追加: 对不起,我想我发现了问题:

tokenize_str() 是我实现从字符串到双精度的转换。但是 perl stringify "$r" 将 $r 打印为 13.8518009935297,这已经是截断了。$r 的实际值是不同的,所以当我最后将 $t 和 $r 的二进制文件放在一起时,我得到的值是不同的。

0 投票
1 回答
243 浏览

assembly - 从 5 位浮点表示中计算值

我已经在这方面做了很多工作,并且认为我遗漏了关于“压裂”部分的一些东西。在这个 5 位浮点数中,符号位是最高有效位,接下来的两位是指数,指数偏差为 1。最后两位是有效位(尾数)。

所以我有很多价值观,但我只是想更好地理解这个方法。第一个是:

我知道方程是

符号为零,并且由于数字是非规格化的,因此 E = 1-bias = 0(对吗?)

所以我有:

我遇到的问题是尾数值。我认为对于非规范化数字,它等于 0.frac,这里的 frac 等于 1 对吗?

那么 m = .1 吗?

我在网上找到了一堆东西,看起来 frac 是比特数的值?

所以也许 m = 1/5?

最后,有人告诉我我的答案应该表示为 x/4。那么m应该是1/4吗?如果是这样,为什么?

感谢任何人都可以提供的任何帮助或教导!