c语言如何取模运算

c语言如何取模运算,第1张

C语言用取模运算符“%”进行取模运算。

取模运算符“%”的作用是求两个数相除的余数。例如,请看下面这段代码:

x=15/7

如果x是一个整数,x的值将为2。然而,如果用取模运算符代替除法运算符"/",得到的结果就不同了:

X=15%7

这个表达式的结果为15除以7的余数,等于1。这就是说,15除以7得2余1。

取模运算符通常用来判断一个数是否被另一个数整除。例如,如果你要打印字母表中序号为3的倍数的字母,你可以使用下面这段代码:

int x

for(x=1x<=26x++)

if((x%3)==0)

printf("%c"x+64)

上例将输出字符串"cfilorux",即字母表中序号为3的倍数的所有字母。

取模运算余数的定义:当被除数不够整除时余下的数。

当都是正整数时:

除法实际可转化为减数,不够减时剩下的就是余数。

例如:12%5

12-5-5

2

当存在负数时: x%y

i. 当异号时:

if |x|>|y|

result: x+y

else

result: x

例:

-6% 5等于-1

6%-5等于 1

5%-6等于 5

-5% 6等于 -5

ii. 当同号时:

if |x|>|y|

result: x-y

else

result: x

例:

-1%-5等于-1

-6%-5等于-1

-4%-5等于-4

-5%-6等于-5

取模运算(“modulo

operation”)在c/c++中采用的是'%'

例子如下

int apple = 10 % 2// apple = 0

int banana = 10 % 3// banana = 1不难看出,其实取模运算就是求余数(在数学中称为取余)

10 / 2 = 5...0

10 / 3 = 3...1一般在程序用用于判断奇数或者偶数

if (apple % 2) {

// 当 apple 为奇数时,余数为1

} else {

// 当 apple 为偶数时,余数为0

} 或者用于求十进制整数上的各个位的数值,或者用于设置随机数的范围(c)

对于整型数a,b来说,取模运算或者求余运算的方法都是:

1.求 整数商: c = a/b

2.计算模或者余数: r = a - c*b.

求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入(fix()函数);而取模运算在计算c的值时,向负无穷方向舍入(floor()函数)。

例如:计算-7 Mod 4

那么:a = -7;b = 4;

第一步:求整数商c,如进行求模运算c = -2(向负无穷方向舍入),求余c = -1(向0方向舍入);

第二步:计算模和余数的公式相同,但因c的值不同,求模时r = 1,求余时r = -3。

归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。

当符号不一致时,结果不一样。求模运算结果的符号和b一致,求余运算结果的符号和a一致。

另外各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12140142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存