%符号——java的取余运算——python的取模运算

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90172391

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90172391

取余运算和取模运算类似但是不同。同样的A%B,设C是A和B的商,即A=B*C。

C如果是整数,说明A和B整除,取余运算和取模运算都是0。

C如果是小数(绝大部分是这种情况),则看C是大于0还是小于0,如果大于0则取余运算和取模运算结果一样,如果小于0,则有不同,这是因为取余运算和取模运算的机制不同。

对于C的取整,取余运算是向0取整,取模运算是向负无穷取整。所以正数都是直接去掉小数。对于负数,取余运算是直接去掉小数部分,取模运算是比C小的最大整数。如C为1.23,则取余运算和取模运算都是去掉小数,取1。如C为-1.23,取余运算去掉小数,取-1,取模运算去小于-1.23的最大整数-2。C一旦确定,则取余运算或取模运算的值也出来了。

在数轴上说,对X向0取整,指的是X向0方向遇到的第一个整数。同样的,对X向负无穷取整,指的是X向负无穷方向上遇到的第一个整数。所以向0取整就是直接去掉小数部分,向负无穷取整是取小于X的最大整数。

经归纳,得知:取余运算的值的符号跟随A,取模运算的符号跟随B。

A值 B值 取余运算 取模运算

附注:正负号不是直接加上的,如-7%4,在python是取模,查上表得知符号为正,其值为1,在java是取余,查上表得知符号为负,其值为-3。所以这个正负号的变化,是加上或减去B(此处-7%4的B是4)得到的。

独孤尚良dugushangliang——著

猜你喜欢

转载自blog.csdn.net/dugushangliang/article/details/90172391