问题标签 [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 回答
533 浏览

c - 发出清除 128 位整数数组中的位

我对这个程序的目标是我希望能够将 1000 位分别设置为 0 或 1,为此我使用的是 128 位整数数组。

现在的问题是当我简单地 clear_bit(3) 时,第 35 位也被清除(反之亦然)。3 和 35 总是一起清除,4 和 36、5 和 37 等也是如此。所以显然有一个模式。我只想清除 3 而其余的保持 1。

任何想法为什么会发生这种情况?谢谢!

结果

0 投票
1 回答
409 浏览

c++ - 如何将 C++ max 函数与 boost 128 位整数一起使用

如果我有以下代码:

如果我在 Ubuntu 上使用 g++ 进行编译,我会收到以下错误:

错误:无法在赋值中将 'const boost::multiprecision::number >' 转换为 'int64 {aka long long int}'

比较两个 int128_t 数字以查看哪个更大的正确方法是什么?

编辑:我正在使用 std::max。

0 投票
3 回答
609 浏览

c++ - 128 位 int 是否在 C/C++ 中的两条指令中写入或加载?

我知道 C 和 C++ 中存在一种int128_t类型。

如果我有两个线程,一个正在从包含这个 128 位整数的内存位置读取,另一个正在写入它。

这个值是否有可能被写为两个 64 位整数写入,还是一个 128 位整数写入?

0 投票
1 回答
284 浏览

redis - redis ZRANGEBYLEX 和 ipv6

跟进这篇文章:redis store 128 bit number

如何使用 ipv6 地址进行字典搜索。

如果我这样使用它:

但:

一个主意 ?

0 投票
1 回答
1062 浏览

c++ - 如何对 __uint128_t (128bit) 进行正向和反向位扫描?

我已经使用 DeBruijn 算法完成了位扫描正向/反向 64 位,但无法归档 128 位,__uint128_t。有什么解决办法吗?提前致谢!

使用 DeBruijn 算法进行位扫描正向/反向 64 位的 FYI 代码:

0 投票
2 回答
1752 浏览

python - 如何在 Python 中对 128 位无符号整数进行排序?

我有大量的 128 位无符号整数需要排序以供分析(大约一万亿!)。

我对 128 位整数所做的研究让我走入了一条死胡同,numpy 似乎并不完全支持它们,而且内部排序功能是内存密集型的(使用列表)。

例如,我想做的是将十亿个 128 位无符号整数加载到内存中(如果只是二进制数据,则为 16GB)并对它们进行排序。有问题的机器有 48GB 的​​ RAM,所以应该可以使用 32GB 进行操作。如果必须在较小的块中完成,那没关系,但是尽可能大的块会更好。Python 是否有一种排序算法可以在不需要大量开销的情况下获取此类数据?

我可以使用列表的 .sort 方法对 128 位整数进行排序,它可以工作,但它无法扩展到我需要的级别。我确实有一个 C++ 版本,它是定制编写的,并且运行速度非常快,但我想在 Python 中复制它以加快开发时间(而且我没有编写 C++,而且我不习惯那种语言) .

抱歉,如果需要更多信息来描述问题,请提出任何问题。

0 投票
1 回答
499 浏览

python - Python C-API int128 支持

在 python 中,可以处理非常大的整数(例如uuid.uuid4().int.bit_length()给出 128),但C-API 文档提供的最大数据结构是int,它是64 位的.long longint

我希望能够int128从 a获得 C PyLong,但似乎没有工具可以做到这一点。例如PyLong_AsLongLong不能处理大于2**64.

  • 是否有一些我错过的文档,实际上是可能的?
  • 目前是否不可能,但存在一些解决方法?(我很想将 python C-API 中可用的工具用于long longint128,例如一个PyLong_AsInt128AndOverflow函数)。
  • 它是即将发布的 python 版本中的计划功能吗?
0 投票
1 回答
312 浏览

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.

我的模指数代码如下所示(目前没有添加溢出支持):

从数学的角度来看:

例子:

0 投票
1 回答
1813 浏览

c++ - 如何抑制“ISO C++ 不支持 '__int128' 警告?

我正在用 gcc、-Wall -Wextra -Wpedantic开关和非扩展标准集(比如说它-std=c++14)编译我的代码。但是-我想对该规则做一个例外并使用__int128. 这给了我一个警告:

我可以压制关于的具体警告__int128吗?或者,我可以-Wpedantic在使用这种类型之前和之后临时抑制吗?

0 投票
1 回答
858 浏览

c - 将 64 位整数相除,就像被除数左移 64 位一样,没有 128 位类型

为令人困惑的标题道歉。我不知道如何更好地描述我想要完成的事情。我实际上是在尝试 在 C 中为平台获得 64 位乘法的高半部分相反

由于缺乏对__int128.