问题标签 [int128]

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 投票
2 回答
8643 浏览

c++ - 在 C++ 中进行基本 128 位整数计算的有效方法?

几年前,我需要一种方法来使用 Cuda 进行一些基本的 128 位整数数学运算: cuda 上的 128 位整数?. 现在我遇到了同样的问题,但是这次我需要在不支持任何类型的 128 位的 32 位嵌入式系统(英特尔爱迪生)上运行一些基本的 128 位算术(求和、位移和乘法)。但是,直接支持 64 位整数(unsigned long long int)。

我天真地尝试使用上次在 CPU 上回答我的 asm 代码,但我得到了一堆错误。我真的没有使用 asm 的经验,所以:用 64 位整数实现 128 位的加法、乘法和位移的最有效方法是什么?

0 投票
3 回答
2295 浏览

c - 如何在 Cython 中使用 128 位整数

在我的 64 位计算机上,该long long类型具有 64 位。

我需要使用 128 位整数,幸运的是GCC 支持这些。如何在 Cython 中使用这些?

以下不起作用。编译foo.pyx只包含

产量

0 投票
1 回答
5149 浏览

c - 将两个 64 位整数乘以 128 位然后 >> 乘以 64 位的最快方法?

我需要将两个有符号的 64 位整数相乘,a然后b将(128 位)结果转换为有符号的 64 位整数。最快的方法是什么?

fmt我的 64 位整数实际上用小数位表示定点数。例如,fmt选择a * b >> fmt不会溢出,并且不会在 64 位中溢出,因为最终结果将是并且因此适合 int64。abs(a) < 64<<fmtabs(b) < 2<<fmtfmt==56< 128<<fmt

我想这样做的原因是快速准确地((((c5*x + c4)*x + c3)*x + c2)*x + c1)*x + c0以定点格式评估形式的五次多项式,每个数字都是带fmt小数位的有符号 64 位定点数。我正在寻找实现这一目标的最有效方法。

0 投票
3 回答
612 浏览

c - C 模数返回负数

我有数据类型unsigned __int128 data;,所以我认为这不是类型问题,但我不知道为什么会发生

返回:

0 投票
5 回答
9329 浏览

x86 - 现代处理器中是否有对 128 位整数的硬件支持?

我们是否仍然需要在软件中模拟 128 位整数,或者这些天在您的普通桌面处理器中是否有硬件支持?

0 投票
0 回答
126 浏览

leading-zero - __int128_t 的前导零计数错误

输出:63 64

gcc 版本 5.3.0 20151204

为什么结果是错误的?有没有其他方法可以计算 int128_t 的前导零。

0 投票
2 回答
6055 浏览

python - Numpy 八倍精度浮点数和 128 位整数。为什么以及如何?

这主要是出于好奇。我注意到 numpy 测试套件包含对 128 位整数的测试,并且该numerictypes模块引用了int128float256八倍精度?)和其他似乎没有映射到我机器上的 numpy dtypes 的类型。

我的机器是 64 位的,但我可以使用四倍 128 位浮点数(但不是真的)。我想如果可以在软件中模拟四倍浮点数,理论上也可以模拟八倍浮点数和 128 位整数。另一方面,直到刚才我还从未听说过 128 位整数或八倍精度浮点数。numerictypes如果没有对应的 s,为什么在 numpy 的模块中会引用 128 位整数和 256 位浮点数,dtype我该如何使用它们?

0 投票
1 回答
3533 浏览

c++ - __uint128_t 不适用于 Clang 和 libstdc++

考虑以下用于 GNU 扩展的类型特征的小型测试程序__uint128_t

这适用于 g++ 和 libstdc++(工作示例)以及 clang++ 和 libc++(工作示例),但不适用于 clang++ 和 libstdc++(失败示例)的组合。

请注意,在所有 3 种情况下,我都使用该-std=gnu++1z标志。

问题:哪种命令行参数组合可以使用 libstdc++ 成功编译我的 clang++ 测试程序?

0 投票
0 回答
641 浏览

c - emscripten 支持 __int128?如果不是,如何实现 128 位 int 乘法?

我正在尝试使用 Emscripten 将 C 项目编译为 Javascript,并且我有非常基本的代码,它使用 GCC 扩展支持__int128,如下所示:

现在这些变量是从uint64_t我知道 Emscripten 支持的指针中转换出来的,但是我在编译时收到一个错误,上面写着

所以,要么我不知道如何启用支持,要么不支持这种类型。如果是后者,是否有人有关于如何在没有类型支持的情况下模拟 128 位无符号整数乘法的提示?代码似乎实际上不需要将结果保持为完整的无符号 128 位形式,因为乘法之后的行将数字向下移动到 64 位无符号整数。

0 投票
1 回答
745 浏览

redis - redis存储128位数字

我想使用 redis 有效地搜索 IPv6 子网范围

我想将 IPv6 数字地址存储在 redis 中并按范围搜索它们。这些是128 位 ints,例如:

并按范围查询:

但是,redis sorted-sets 可以保持高达 2^53 的分数,所以我所有的大整数都被修剪了,我正在失去精度。

有没有办法在redis中保存这么大的数字而不会丢失精度?

你有更好的建议吗?谢谢