问题标签 [modulus]
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中的模运算符
我在编写的一些 c 代码中遇到了一个错误,虽然它相对容易修复,但我希望能够更好地理解它背后的问题。基本上发生的事情是我有两个无符号整数(实际上是uint32_t),当应用模运算时,产生了一个负数的无符号等价物,一个已经被包装的数字,因此是“大”的。这是一个示例程序来演示:
这会在我的 x86_64 机器上产生以下输出:
1536 是我期望的数字,但 (uint32_t)(-512) 是我得到的数字,正如您可能想象的那样,这有点让事情发生了。
所以,我想我的问题是:为什么在这种情况下,两个无符号数之间的模运算会产生一个大于除数的数字(即负数)?这种行为是首选的原因吗?
c - C中模数(数学函数)的等价物?
我有一段代码,我看到一条警告说
我正在比较有符号数和无符号数。
像 int <= CONSTANT/sizeof(expression)
纠正此问题的最佳方法是什么?我相信取有符号数的模数然后进行比较,对吗?我的意思是在表达式上除以 sizeof 运算符后得到无符号数。所以另一种方法可能是让这个 rhs 签名
如果是这样,c中有一个函数可以让我这样做吗?我做了一个快速搜索,他们说 % for modulo 这显然不是我想要的。
这是实际的警告
警告:有符号和无符号整数表达式之间的比较
这是实际的代码行
函数A(......,整数,......){
assert( num <= MAX_SIZE/sizeof(int));//其中 MAX_SIZE 是 #define MAX_SIZE 1000
}
php - 每三个循环后插入 tr
我正在用 PHP 做一个论坛。我必须在表格中显示所有论坛类别,为此,我使用了一个 while 循环。但是,我希望每个表行中只有 3 个 td。为了遍历类别,我在查询中使用了一个while循环,所以我认为我不能在这里使用模数。
math - 如何以指数形式取模
问题是关于非常大数的模运算符。
例如,考虑一个要计算排列总数的问题。考虑一个 90 位数字,9 个数字(1 到 9)中的每一个都重复 10 次,因此90!/(10!)^9)
要计算
在阅读了 StackOverflow 上的许多答案后,我使用了对数。
现在考虑日志值为 1923.32877864。
现在我的问题是如何显示“m”模的答案(即 10 ^ log10(value) )?
这是计算可能排列数的最佳方法吗?
编辑 得到了解决方案:)
感谢 duedl0r。
是否按照您使用模乘逆指定的方式进行。谢谢 :)
c++ - 为什么 operator% 被称为“模数”运算符而不是“余数”运算符?
今天在工作中,我和我的一位同事进行了一次有趣的讨论。当他遇到以下事情时,他感到很惊讶:
所以当他来问我这个问题时,我告诉他“嗯,这是有道理的。当你将 -1 除以 10 时,你得到 0,剩下 -1。然而,他的论点是模运算符应该适用于“总是积极的”模型。我做了一些研究,发现他所指的模数看起来像这样:
令 q 为 a 和 n 的整数商。令 r 为余数。然后:
a = n * q + r
然而,我使用的定义似乎是模数的 Knuth 版本,即:
设 q 是 a 除以 n 的底。令 r 为余数。然后:
r = a - n * q
所以,我的问题是为什么它最终在 FORTRAN 标准(以及随后的 C 标准)中使模运算符截断为 0?将其称为“模数”而不是“余数”对我来说似乎用词不当(在数学中,答案确实应该是 9)。这与硬件如何进行划分有关吗?
以供参考:
- 关于模量的维基百科
- “模数”运算符的 MSDN 条目
(是的,我意识到它适用于 VS2003 ......我目前坚持使用它。Sadface) - 模数运算符更改
- 不要假设正余数...
TLDR;硬件是模数运算符向 0 截断的原因吗?
c++ - How does modulus work and why is it different in Python than most languages?
Below is some code in C++. If you try something like -2%5
in python the result is positive 3 while many other languages like c++ C# (code) and flash give -2
Why do they give -2 and is one version more correct than the other?
Output:
modulus - 全等整数和模数
我是这里的主题新手:/谁能告诉我如何解决以下问题?证明 36^2004 + 17^768 x 27^412 可以被 19 整除。谢谢!
php - 使用模数排序
我正在尝试使用 uksort 将列表排序到列中。
数组已经 alpha 排序,所以它就像array('A','B','C','D','E','F','G','H','I','J','K','L','M')
在 html 中显示为浮动元素:
我希望它重新排序,使其显示如下:
所以排序后的数组将是:array('A','E','H','K','B','F','I','L','C','G','J','M','D'
基本上,与使用模数按字母顺序排序列表相同,但对于 php。我已经尝试采用 javascript 的解决方案并将其转换为 php,但我没有得到正确的东西。有人对如何在 php 中执行此操作有任何想法吗?
这是我尝试过的:
floating-point - 当分母不为 0 时,使用 fmod 操作在 64 位 Windows (C++) 上返回“-1.#IND”
执行以下操作时:float remaining_fl = fmod (float(a), float(b));
当 a = 0 且 b = 300 时,“remainder_fl”设置为“-1.#IND”。这仅发生在 Windows 版本的 64 位 DLL 上。使用调试 64 位 DLL 以及使用 Windows 32 位发行版和调试 DLLS 时,根本不会出现此问题。
如果有人对为什么会发生这种情况有任何建议或指示,我将不胜感激。
谢谢你,阿什
机器配置 64 位 Windows 2008 Std Server,优化发布 DLL。