问题标签 [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 投票
1 回答
374 浏览

node.js - 从 Node JS 缓冲区读取 UINT 128

我正在编写一个 Node JS 客户端,它正在向第三方服务器查询信息。我从第三方服务器收到的部分消息是 UINT 128(在文档中指定)。但是,据我所知,NodeJS 缓冲区不支持从缓冲区读取 128 位整数。我检查了这个页面,两个最有可能的函数(读取 BIGITS 和读取未指定的字节长度整数)都不支持 128 位整数。

我已经尝试安装和使用大整数模块,但如果这是正确的方法,我无法理解如何将缓冲区中的字节读取到大整数对象中。

如何从 NodeJS 缓冲区中读取 UINT128?如有必要,我愿意使用位算术,我只是不确定如何。

0 投票
4 回答
22651 浏览

rust - Rust 的 128 位整数 i128 如何在 64 位系统上工作?

Rust 有 128 位整数,它们用数据类型表示i128u128对于无符号整数):

Rust 如何使这些i128值在 64 位系统上工作;例如,它如何对这些进行算术运算?

因为,据我所知,该值无法放入 x86-64 CPU 的一个寄存器中,编译器是否以某种方式将两个寄存器用于一个i128值?或者他们是否使用某种大整数结构来表示它们?

0 投票
2 回答
206 浏览

c - gcc 7.3 128 位无符号整数运算

我对 128 位整数的使用感到困惑。请看测试代码:

我希望test_data_h是 0x00000000FFFFFFFF,但结果是:

为什么是这样?

0 投票
5 回答
687 浏览

c - 如何为 __int128 定义 INT128_MAX 和 INT128_MIN?

gcc 本身具有 __int128 类型。

但是,它没有在 limits.h 中定义。我的意思是没有像INT128_MAX或这样的东西INT128_MIN……</p>

gcc 将文字常量解释为 64 位整数。这意味着如果我写#define INT128_MIN −170141183460469231731687303715884105728它会抱怨告诉它截断值的类型。

这对于在数组上移动尤其烦人。如何克服这一点?

0 投票
0 回答
136 浏览

c - gcc 打开 -O3 会导致 128 位整数出现错误

将无符号 256 位整数乘以常数 977 的函数的两个版本。(用于密码学应用)__int128_t第二个函数中使用注释类型。

输出有和没有-O3,结果应该是相同的:

使用-O3, gcc 生成 SSE 代码:

但是,我对 asm 的了解还不够,无法找出问题所在。

编译器版本和 cpu 标志:

0 投票
1 回答
677 浏览

c - 无符号 __int128 文字 GCC

我有一个功能foo(unsigned __int128)。如何将类型的文字传递unsigned __int128给函数?我的尝试:

如您所见,它们都被截断了。我如何向 GCC 发出信号,表明文字是unsigned __int128?

编辑: gcc 手册说:

GCC 不支持为具有小于 128 位宽的 long long 整数的目标表示 __int128 类型的整数常量

这是否意味着我不能编写(无符号)__int128 类型的文字?

有替代品吗?

0 投票
0 回答
90 浏览

c++ - 我的电脑无法编译数据类型:__int128

我正在编辑我之前编码和编译的代码,但后来我改变了 pc(都使用 64 位 Windows),现在向我抛出了这个错误:

我正在用 c++14 - MingGW 编译代码。

我需要做些什么来修复它或者为什么代码的行为会改变?

0 投票
0 回答
206 浏览

c++ - 如何在 g++ 中打印 __int128

我正在使用__int128g++ 中的 s 并需要打印它们。我发现了这个问题:How to print __int128 in g++? 但它已经 6 岁了:在现代 C++ 中有没有更好的方法?

0 投票
1 回答
556 浏览

c - c语言中128位无符号整数的使用

我需要在我的代码中使用 128 位 unsigned int 变量。
在网上搜索我读到了unsigned __int128。我在这里阅读https://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html

类型 __int128 支持具有足够宽以容纳 128 位的整数模式的目标

我的第一个问题是 target 是什么意思?我必须检查我的电脑是否可以表达这种类型?
第二个问题是如何打印这种变量?
最后我需要做些什么来使用这种变量吗?上面相同的链接说

只需将 __int128 用于有符号 128 位整数,或将无符号 __int128 用于无符号 128 位整数。

所以看起来我不需要#include任何东西,甚至在编译过程中我什至没有添加一些选项,gcc对吗?

0 投票
1 回答
53 浏览

c - c 代码:防止在具有巨大模块的模块化操作中溢出(接近溢出阈值的模块)

在我的 c 代码中,我必须执行一系列递归模块化操作。特别是我必须使用 C~2^126 执行 (A*B)modC 之类的操作,而 A,B 原则上可能是非常大的数字(从 0 到 2^128 - 1)(我与128 位 unsigned __int128变量)。
问题是如何在乘法过程中执行模块。我需要这个,因为如果在乘法之后执行模块,我可能会在乘法期间超过 2^128(如果 A 和 B 非常大)并破坏连续的模运算。
所以我想执行一个乘法,每次通过 C(在乘法过程中)而不是每次通过 2^128 - 1 时从 0 重新开始。
我应该怎么做?