猿问

“MOD”和“余数”有什么区别?

“MOD”和“余数”有什么区别?

我的朋友说,“国防部”和“剩余”是有区别的。

如果是的话,C和C+的区别是什么?%在C中是指“mod”还是“rem”?


幕布斯7119047
浏览 629回答 3
3回答

繁花不似锦

%在C中是指“mod”还是“rem”?在C中,%是余数1..的结果/算子是带任意小数部分的代数商.(这通常被称为“向零截断”)。C11dr§6.5.5 6的操作数%运算符应具有整数类型。C11dr§6.5.5 2的结果/运算符是从第一个操作数除以第二个操作数的商;%运算符是余数..C11dr§6.5.5 5“MOD”和“余数”有什么区别?C不定义“mod”,例如欧氏除法或其他模块..“欧几里得模”与C的不同a%b操作时a是阴性的。&nbsp;//&nbsp;a&nbsp;%&nbsp;b &nbsp;7&nbsp;%&nbsp;&nbsp;3&nbsp;-->&nbsp;&nbsp;1&nbsp;&nbsp; &nbsp;7&nbsp;%&nbsp;-3&nbsp;-->&nbsp;&nbsp;1&nbsp;&nbsp;-7&nbsp;%&nbsp;&nbsp;3&nbsp;-->&nbsp;-1&nbsp;&nbsp;-7&nbsp;%&nbsp;-3&nbsp;-->&nbsp;-1模欧氏除法&nbsp;7&nbsp;modulo&nbsp;&nbsp;3&nbsp;-->&nbsp;&nbsp;1&nbsp;&nbsp; &nbsp;7&nbsp;modulo&nbsp;-3&nbsp;-->&nbsp;&nbsp;1&nbsp;&nbsp;-7&nbsp;modulo&nbsp;&nbsp;3&nbsp;-->&nbsp;&nbsp;2&nbsp;&nbsp;-7&nbsp;modulo&nbsp;-3&nbsp;-->&nbsp;&nbsp;2候选模块代码:int&nbsp;modulo_Euclidean(int&nbsp;a,&nbsp;int&nbsp;b)&nbsp;{ &nbsp;&nbsp;int&nbsp;m&nbsp;=&nbsp;a&nbsp;%&nbsp;b; &nbsp;&nbsp;if&nbsp;(m&nbsp;<&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;m&nbsp;+=&nbsp;(b&nbsp;<&nbsp;0)&nbsp;?&nbsp;-b&nbsp;:&nbsp;b;&nbsp;//&nbsp;avoid&nbsp;this&nbsp;form:&nbsp;it&nbsp;is&nbsp;UB&nbsp;when&nbsp;b&nbsp;==&nbsp;INT_MIN &nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;(b&nbsp;<&nbsp;0)&nbsp;?&nbsp;m&nbsp;-&nbsp;b&nbsp;:&nbsp;m&nbsp;+&nbsp;b; &nbsp;&nbsp;} &nbsp;&nbsp;return&nbsp;m;}关于浮点的注意事项:double fmod(double x, double y),即使被称为“fmod”,它与欧几里德除法“mod”并不相同,而是类似于C整数余数:这个fmod的浮点余数。x/y..C11dr§7.12.10.1 2fmod(&nbsp;7,&nbsp;&nbsp;3)&nbsp;-->&nbsp;&nbsp;1.0&nbsp;&nbsp;fmod(&nbsp;7,&nbsp;-3)&nbsp;-->&nbsp;&nbsp;1.0&nbsp;&nbsp;fmod(-7,&nbsp;&nbsp;3)&nbsp;-->&nbsp;-1.0&nbsp;&nbsp;fmod(-7,&nbsp;-3)&nbsp;-->&nbsp;-1.0消歧C也有一个类似的命名函数double modf(double value, double *iptr)它将参数值分解为整数部分和小数部分,每个部分具有与参数相同的类型和符号。这与这里的“mod”讨论没有什么关系,只是名字相似。1在C99之前,C的定义%仍然是余数从组织,然而,那么/允许负商数四舍五入,而不是“向零截断”。看见为什么在C89中得到不同的整数除法值?..因此,通过一些C99前的编译,%代码的作用就像欧几里德除法“mod”一样。上述modulo_Euclidean()也会用这个老旧的余数。

互换的青春

模,在模块算术中,如您所指,是算术除法后的剩馀值或剩余值。这通常称为余数。%在形式上是C/C+中的余数运算符。例子:7&nbsp;%&nbsp;3&nbsp;=&nbsp;1&nbsp;&nbsp;//&nbsp;dividend&nbsp;%&nbsp;divisor&nbsp;=&nbsp;remainder剩下要讨论的是如何处理这个%操作的负输入。现代C和C+为此操作生成一个有符号余数值,其中结果的符号总是与股利投入相匹配。不考虑除数输入的符号。
随时随地看视频慕课网APP
我要回答