问题标签 [128-bit]

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 回答
206 浏览

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

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

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

为什么是这样?

0 投票
0 回答
124 浏览

c - 如何在 cooja 模拟器的 protothread 中拥有 128 位整数?

c 中是否已经有任何库可用,或者我是否需要使用适用于 cooja 模拟器的外部库?我已经尝试过 Z mote 的 GMP 库。但这对我不起作用。

0 投票
0 回答
87 浏览

assembly - SIMD 指令中间结果存储在哪里?

在 Intel Intrinsics 中,您可能会找到这样的说明:

_mm256_mullo_epi64

在描述中:“将压缩的 64 位整数 a 和 b 相乘,产生中间 128 位整数,并将中间整数的低 64 位存储在 dst 中。”,它说指令将产生完整的 128 位整数作为中间结果,但它只会存储低 64 位。

如何获得高 64 位?

类似的指令是mulx,它将两个 64 位整数相乘并将所有 128 位存储到两个 64 位寄存器中。事实上,我只是想找到一个 SIMD 版本的mulx.

0 投票
1 回答
207 浏览

c# - 为什么C#的十进制类型是128位?

decimal选择 C# 的类型为 128 位是否有原因?类比double会建议 64 位(仅十进制浮点而不是二进制),而与 Java 类比,或“确保它拥有所需的一切”的哲学,会建议任意精度。

这不是一个修辞问题。我个人会以任意精度进行,但 128 位可能工作正常。我只是在问,选择的实际原因是否已经记录在任何地方,或者是否合理猜测;它是针对特定用例还是由直觉决定的;是否存在 64 位不够但不需要任意精度的已知用例?

0 投票
1 回答
109 浏览

c# - 为什么C#的十进制使用二进制整数有效位?

新的 IEEE 128 位十进制浮点类型https://en.wikipedia.org/wiki/Decimal128_floating-point_format指定有效位(尾数)可以用两种方式之一表示,或者作为简单的二进制整数,或者以密集十进制表示(在这种情况下,每十位代表三个十进制数字)。

C# 的decimal类型早于该标准,但具有相同的想法。它带有二进制整数有效位。

从表面上看,这似乎效率低下。对于加法和减法,要排列有效数字,您必须将其中一个除以十的幂;除法是所有算术运算符中最昂贵的。

选择的原因是什么?什么相应的优势被认为值得惩罚?

0 投票
1 回答
198 浏览

c - LLVM:从 long double 制作 LLVMFP128Type

在 LLVM 中,有一个LLVMFP128Type,尽管我似乎无法找到如何将实际long double转换为 a LLVMValueRefof 类型LLVMFP128Type

我可以执行以下操作(使用double):

生成以下 LLVM IR:

但是我如何为 a 做同样的事情long double?有一个LLVMConstRealOfString函数,它从一个字符串中获取一个常量浮点数,尽管我发现必须使用类似的东西来转换字符串和从字符串转换是低效的sprintf

给出以下(所需的)LLVM IR:

如何通过第一个示例的简单性获得所需的结果(下例)?

0 投票
0 回答
57 浏览

c++ - 在 cpp 中生成 128 位泊松分布数

我尝试以 1e-25 甚至更低的顺序测量概率。我运行一个 cpp 代码,它基本上是一个数字 ODE 求解器(使用简单的欧拉步骤)。我有很长的整数来存储单元格编号(每一步我掷骰子,我使用 64 位精度的 Mersenne Twister 随机数生成器更新单元格编号,并使用 mersenne 引擎从泊松分布中选择数字)。只要 long int 和 64 位 mersenne 和 poisson dist 就足够了,直到大约。1e19,我需要 128 位精度。我正在寻找一种可靠的方法来生成 128 位伪随机数并将它们存储为 uint_128 等,尤其是生成 128 位随机泊松分布数。

我已经在该主题中进行了搜索,但没有找到任何有用的信息,也许我可以将这些碎片拼凑在一起,但我无法...

先感谢您!

0 投票
1 回答
353 浏览

java - 如何在 Java 中使用 Camellia 128 位加密算法加密字符串?

我目前正在尝试开发一个将 Camellia 128 位作为其加密算法的聊天应用程序。我从它的官方页面 [这里][1] 成功构建并运行了代码。问题是整数数据类型的算法加密。当我尝试加密字符串消息时,我将其转换为 ASCII 格式,但它给了我

线程“主”java.lang.NumberFormatException 中的异常:对于输入字符串:“10410110810811132119111114108100”在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 在 java.lang.Integer.parseInt(Integer.java:583) 在java.lang.Integer.parseInt(Integer.java:615) 在 Camellia.main(Camellia.java:54)

. 我知道这是因为 ASCII 码太长了。但我真的卡住了,我不知道如何使用字符串加密算法。下面是我的主要代码

这是我的完整代码:-

0 投票
3 回答
134 浏览

c++ - 如何在 C 中实现 binary128?

我开始尝试使用 C 来实现新的数据类型,特别是浮点值。我想出了这种我还没有完全理解的实现binary128方式longer_int

我开始的方式是通过复制代码并修改它来实现它。但是,代码是C++,C不支持OOP,所以我要做的就是尝试翻译代码。

我找不到 C 版本,longer_int因为我曾经拥有的这个问题(同一个帐户但现在已删除)现在已被删除,我无法查看链接。

在这些 C++ 文件的帮助下,我如何binary128使用 C 来实现?

只是为了让这个问题不会结束,我想知道如何将 OOP 格式转换为longer_int.h.

0 投票
2 回答
4502 浏览

c - 模运算符比手动执行慢?

我发现手动计算%运算符__int128比内置编译器运算符快得多。我将向您展示如何计算模 9,但该方法可用于计算模任何其他数字。

首先,考虑内置的编译器运算符:

现在考虑我的手动实现:

测量超过 100,000,000 个随机数会得出以下结果:

GCC 9.3.0-march=native -O3用于 AMD Ryzen Threadripper 2990WX。 是godbolt的链接。

我想问一下它在你这边的行为是否相同?(在向 GCC Bugzilla 报告错误之前)。

更新: 根据要求,我提供了一个生成的程序集: