首先我们要理解的是%在c语言中是什么运算。在c语言中,%指的是取余数。
有了以上知识作为铺垫,我们来看一下1%2结果到底是什么。
1除以2,商是0,余数是1,所以1%2的结果是1。
拓展资料:
关于“/”的“%”的总结
除法运算符“/”。二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。
求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。
求余运算的结果等于两个数相除后的余数。
“%”取模运算符还有一些小的应用,例如:
①当你想要通过rand()获得随机数时,rand()%100;产生0-99的随机数。
假如要产生16-59之间的数,可以这样写:rand()%44+16(这里44由59-16+1得到)。
rand()%44 即可获得0-43的随机数,再加上16即可得到16-59的随机数了;
②除了第一点以外,“%”运算还通常用于N进制的转换。 例如:
如果是二进制转换,那么就可以通过/与%的结合使用则可以得到转换之后的二进制数了(其实就是短除法)
当原数被除至剩余0时,它的上一次模数就是最高位进制数。
30(10)->11110(2)/与%的结合使用通常都可用于获得最低位数又或者获得所需的某位数。 例如:
“/”通常可以去掉尾数,而“%”通常都用于获得尾数。
而/是除,对于整数如3/2=1,它把小数舍掉了,即便是0.9也舍,不是按四舍五入的,整数相除结果还是整数
而3.0/2=1.5这是因为实数相除还是实数
%在作为双目运算符时,表示取模运算,C语言中如a%b的结果即为a除以b得到的余数。
2013-03-30
只要记住%是求余数就行了。再不行你就用除法算了收余数就行,而且运算数必须是整型