问题标签 [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.
c++ - 在 C++ 中进行基本 128 位整数计算的有效方法?
几年前,我需要一种方法来使用 Cuda 进行一些基本的 128 位整数数学运算: cuda 上的 128 位整数?. 现在我遇到了同样的问题,但是这次我需要在不支持任何类型的 128 位的 32 位嵌入式系统(英特尔爱迪生)上运行一些基本的 128 位算术(求和、位移和乘法)。但是,直接支持 64 位整数(unsigned long long int)。
我天真地尝试使用上次在 CPU 上回答我的 asm 代码,但我得到了一堆错误。我真的没有使用 asm 的经验,所以:用 64 位整数实现 128 位的加法、乘法和位移的最有效方法是什么?
c - 如何在 Cython 中使用 128 位整数
在我的 64 位计算机上,该long long
类型具有 64 位。
我需要使用 128 位整数,幸运的是GCC 支持这些。如何在 Cython 中使用这些?
以下不起作用。编译foo.pyx
只包含
产量
c - 将两个 64 位整数乘以 128 位然后 >> 乘以 64 位的最快方法?
我需要将两个有符号的 64 位整数相乘,a
然后b
将(128 位)结果转换为有符号的 64 位整数。最快的方法是什么?
fmt
我的 64 位整数实际上用小数位表示定点数。例如,fmt
选择a * b >> fmt
不会溢出,并且不会在 64 位中溢出,因为最终结果将是并且因此适合 int64。abs(a) < 64<<fmt
abs(b) < 2<<fmt
fmt==56
< 128<<fmt
我想这样做的原因是快速准确地((((c5*x + c4)*x + c3)*x + c2)*x + c1)*x + c0
以定点格式评估形式的五次多项式,每个数字都是带fmt
小数位的有符号 64 位定点数。我正在寻找实现这一目标的最有效方法。
c - C 模数返回负数
我有数据类型unsigned __int128 data;
,所以我认为这不是类型问题,但我不知道为什么会发生
返回:
x86 - 现代处理器中是否有对 128 位整数的硬件支持?
我们是否仍然需要在软件中模拟 128 位整数,或者这些天在您的普通桌面处理器中是否有硬件支持?
leading-zero - __int128_t 的前导零计数错误
输出:63 64
gcc 版本 5.3.0 20151204
为什么结果是错误的?有没有其他方法可以计算 int128_t 的前导零。
python - Numpy 八倍精度浮点数和 128 位整数。为什么以及如何?
这主要是出于好奇。我注意到 numpy 测试套件包含对 128 位整数的测试,并且该numerictypes
模块引用了int128
、float256
(八倍精度?)和其他似乎没有映射到我机器上的 numpy dtypes 的类型。
我的机器是 64 位的,但我可以使用四倍 128 位浮点数(但不是真的)。我想如果可以在软件中模拟四倍浮点数,理论上也可以模拟八倍浮点数和 128 位整数。另一方面,直到刚才我还从未听说过 128 位整数或八倍精度浮点数。numerictypes
如果没有对应的 s,为什么在 numpy 的模块中会引用 128 位整数和 256 位浮点数,dtype
我该如何使用它们?
c - emscripten 支持 __int128?如果不是,如何实现 128 位 int 乘法?
我正在尝试使用 Emscripten 将 C 项目编译为 Javascript,并且我有非常基本的代码,它使用 GCC 扩展支持__int128
,如下所示:
现在这些变量是从uint64_t
我知道 Emscripten 支持的指针中转换出来的,但是我在编译时收到一个错误,上面写着
所以,要么我不知道如何启用支持,要么不支持这种类型。如果是后者,是否有人有关于如何在没有类型支持的情况下模拟 128 位无符号整数乘法的提示?代码似乎实际上不需要将结果保持为完整的无符号 128 位形式,因为乘法之后的行将数字向下移动到 64 位无符号整数。
redis - redis存储128位数字
我想使用 redis 有效地搜索 IPv6 子网范围。
我想将 IPv6 数字地址存储在 redis 中并按范围搜索它们。这些是128 位 ints,例如:
并按范围查询:
但是,redis sorted-sets 可以保持高达 2^53 的分数,所以我所有的大整数都被修剪了,我正在失去精度。
有没有办法在redis中保存这么大的数字而不会丢失精度?
你有更好的建议吗?谢谢