问题标签 [modulo]

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 投票
12 回答
11606 浏览

python - 具有负值的模运算 - 奇怪的事情?

你能告诉我多少钱(-2) % 5吗?根据我的 Python 解释器是 3,但是您对此有明智的解释吗?

我已经读过,在某些语言中,结果可能取决于机器,但我不确定。

0 投票
13 回答
58211 浏览

c++ - 在 C/C++ 中使用 % (模数)有什么替代方法吗?

我曾经在某处读到模数运算符在小型嵌入式设备上效率低下,例如没有整数除法指令的 8 位微控制器。也许有人可以证实这一点,但我认为差异比整数除法运算慢 5-10 倍。

除了保持计数器变量并在 mod 点手动溢出到 0 之外,还有其他方法吗?

与:

我目前这样做的方式:

0 投票
17 回答
999095 浏览

java - java中mod的语法是什么

作为伪代码中的示例:

0 投票
5 回答
12190 浏览

modulo - 在数字末尾添加两位数以计算特定模数的算法?

所以,假设我有一个数字 123456。123456 % 97 = 72。如何确定需要在 123456 的末尾添加哪些两位数字,以便新数字 % 97 = 1?注意——它必须始终是两位数。

例如,123456 76 % 97 = 1。在这种情况下,我需要在数字末尾添加数字“76”。

(这是用于 IBAN 号码计算。)

0 投票
4 回答
2121 浏览

.net - 执行大量模数?

我需要对非常大的整数进行模运算。我的平台支持的最大整数(编辑:.NET 2.0)是一个 64 位整数,对于我正在使用的数字来说不够大。

如何对非常大的整数进行取模,例如 12654875632126424875387321657498462167853687516876876?

我有一个解决方案,将数字视为字符串并逐个处理,但我想知道是否有更好的方法。

这是我将数字视为字符串的函数。它基本上按照您手动进行的方式进行长除法。

有没有更清洁、更有效的方法?

编辑:为了澄清,整数来自 IBAN 银行帐号。根据规范,您必须将 IBAN 帐号(包含字母)转换为一个整数。然后,您对整数进行取模。所以,我想你可以说执行模数的整数的真正来源是一串数字。

0 投票
6 回答
4805 浏览

c++ - 获取一个字节中 4 个最低有效位的最快方法是什么(C++)?

我说的是这个:

如果我们有字母“A”,它是十进制的 77 和十六进制的 4D。我正在寻找获得 D 的最快方法。

我想了两个办法:

给定 x 是一个字节。

  1. x << 4; x >> 4

  2. x %= 16

还有其他方法吗?哪个更快?

0 投票
8 回答
37746 浏览

erlang - 你如何在 Erlang 中做模数或余数?

我是 Erlang 的新手。你如何做模(得到除法的余数)?在大多数类 C 语言中它是 %,但它在 Erlang 中指定了一个注释。

有几个人用 rem 回答,在大多数情况下都可以。但是我正在重新讨论这个问题,因为现在我需要使用负数,而 rem 会为您提供除法的余数,这与负数的模数不同。

0 投票
4 回答
5433 浏览

perl - 为什么不同编程语言中的模数不同?

Perl

-->

Tcl

-->

但是 VBScript

-->

为什么有区别?

0 投票
5 回答
6393 浏览

javascript - 在 JavaScript 中使用模数 (%) 运算符的正确方法是什么?

在 JavaScript 中,% 操作符的行为似乎很奇怪。我尝试了以下方法:

为什么它返回 -11 而不是 1(如在 Python 中)?

我确定我正在做错事或期待错事,但文档并没有告诉我是什么。

0 投票
7 回答
5273 浏览

c# - 在 C# 中,如何像 google calc 那样实现模数?

我有一个代表形状的类。Shape 类有一个名为 Angle 的属性。我希望此属性的设置器自动将值包装到范围 [0,359] 中。

不幸的是,一个简单的_Angle = value % 360;只适用于正数。在 C# 中,-40 % 360 == -40. Google calc 会按照我想要的方式进行。该值应为 320。

C# 中最优雅的解决方案是什么?

这是我到目前为止最好的方法:

编辑:

谢谢大家,我现在有:

..哪个更好:)