问题标签 [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++ max 函数与 boost 128 位整数一起使用
如果我有以下代码:
如果我在 Ubuntu 上使用 g++ 进行编译,我会收到以下错误:
错误:无法在赋值中将 'const boost::multiprecision::number >' 转换为 'int64 {aka long long int}'
比较两个 int128_t 数字以查看哪个更大的正确方法是什么?
编辑:我正在使用 std::max。
c++ - 128 位 int 是否在 C/C++ 中的两条指令中写入或加载?
我知道 C 和 C++ 中存在一种int128_t
类型。
如果我有两个线程,一个正在从包含这个 128 位整数的内存位置读取,另一个正在写入它。
这个值是否有可能被写为两个 64 位整数写入,还是一个 128 位整数写入?
c++ - 如何对 __uint128_t (128bit) 进行正向和反向位扫描?
我已经使用 DeBruijn 算法完成了位扫描正向/反向 64 位,但无法归档 128 位,__uint128_t。有什么解决办法吗?提前致谢!
使用 DeBruijn 算法进行位扫描正向/反向 64 位的 FYI 代码:
python - 如何在 Python 中对 128 位无符号整数进行排序?
我有大量的 128 位无符号整数需要排序以供分析(大约一万亿!)。
我对 128 位整数所做的研究让我走入了一条死胡同,numpy 似乎并不完全支持它们,而且内部排序功能是内存密集型的(使用列表)。
例如,我想做的是将十亿个 128 位无符号整数加载到内存中(如果只是二进制数据,则为 16GB)并对它们进行排序。有问题的机器有 48GB 的 RAM,所以应该可以使用 32GB 进行操作。如果必须在较小的块中完成,那没关系,但是尽可能大的块会更好。Python 是否有一种排序算法可以在不需要大量开销的情况下获取此类数据?
我可以使用列表的 .sort 方法对 128 位整数进行排序,它可以工作,但它无法扩展到我需要的级别。我确实有一个 C++ 版本,它是定制编写的,并且运行速度非常快,但我想在 Python 中复制它以加快开发时间(而且我没有编写 C++,而且我不习惯那种语言) .
抱歉,如果需要更多信息来描述问题,请提出任何问题。
python - Python C-API int128 支持
在 python 中,可以处理非常大的整数(例如uuid.uuid4().int.bit_length()
给出 128),但C-API 文档提供的最大数据结构是int
,它是64 位的.long long
int
我希望能够int128
从 a获得 C PyLong
,但似乎没有工具可以做到这一点。例如PyLong_AsLongLong不能处理大于2**64
.
- 是否有一些我错过的文档,实际上是可能的?
- 目前是否不可能,但存在一些解决方法?(我很想将 python C-API 中可用的工具用于
long long
int128,例如一个PyLong_AsInt128AndOverflow
函数)。 - 它是即将发布的 python 版本中的计划功能吗?
rust - 如何解决可能的乘法溢出以获得正确的模运算?
我必须执行(a * b) % m
, 但是a
,b
和是 128 位无符号类型,并且乘法期间溢出的可能性很大。 m
我怎样才能得到正确的答案(可能使用%
更多)?
我正在尝试在 Rust 中实现模指数函数,其中最大的内置类型是u128
(这是我可以使用的最大值)。这三个变量都很大,所以(a * b) > 2^128
很容易。我可以用它a.overflowing_mul(b)
来检测是否发生了溢出,但是我不知道如何从溢出的结果(可以认为是(a * b) % 2^128
)返回来得到(a * b) % m
.
我的模指数代码如下所示(目前没有添加溢出支持):
从数学的角度来看:
例子:
c++ - 如何抑制“ISO C++ 不支持 '__int128' 警告?
我正在用 gcc、-Wall -Wextra -Wpedantic
开关和非扩展标准集(比如说它-std=c++14
)编译我的代码。但是-我想对该规则做一个例外并使用__int128
. 这给了我一个警告:
我可以压制关于的具体警告__int128
吗?或者,我可以-Wpedantic
在使用这种类型之前和之后临时抑制吗?
c - 将 64 位整数相除,就像被除数左移 64 位一样,没有 128 位类型
为令人困惑的标题道歉。我不知道如何更好地描述我想要完成的事情。我实际上是在尝试 在 C 中为平台获得 64 位乘法的高半部分相反
由于缺乏对__int128
.