C语言 !(a%b)什么意思

int a=30,b=8; printf ("%d\n", !(a%b));

这个程序运行结果是什么啊? 那个!(a%b)什么意思啊?什么叫a取余b 还要取反??
麻烦解答一下,谢谢!

(a%b)是数学模运算,意思是取(a/b)的余数。a除以b的结果有两部分,一个是商,一个是余数,就跟我们做除法一样。计算机一般作整数除法a/b只能得到商,余数就用a%b得到,它是0到b-1中的一个值。如果a/b能整除,a%b就是0。
!(a%b)是逻辑运算,只有a%b是0时为真(就当是1吧),a%b不为0时为假(就当是0吧)。
int a=30,b=8,a/b商为3,余6,所以a%b=6,!(a%b)为假,打印结果是0。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-05
(a%b)的意思是看能否整除,因为a=30,b=8,所以a%b=6,然后再加!的意思是取反,C语言中的非0都认为是真,0是假的,6取反,则为0,所以输出0
第2个回答  2023-05-28
在C语言中,`!(a % b)`是一个逻辑非运算符,表示对表达式`(a % b)`的结果取反。`%`是取余运算符,计算a除以b的余数。逻辑非运算符`!`用于对表达式的值进行取反,如果表达式的值为0,则取反后为真(非零值),如果表达式的值非零,则取反后为假(0值)。
因此,`!(a % b)`表示判断a除以b的余数是否为0,如果为0则结果为真,表示a能够整除b,否则结果为假,表示a不能整除b。
第3个回答  2014-01-05
这个含义是
如果a是b的整倍数,则输出1.否则输出0
第4个回答  2014-01-05
这是判断整除(只有余数为零才输出结果)
相似回答