黑马程序员技术交流社区

标题: 新手基础题求解答 [打印本页]

作者: 黄炳期    时间: 2013-5-20 09:04
标题: 新手基础题求解答
本帖最后由 Justin1841 于 2013-5-20 17:28 编辑

  打印到控制台的时候,5 % -2 的结果为1,-5 % 2的结果为-1,可是底层运算到底是怎样的呢?大神来解答下。谢谢
作者: 刘胜寒    时间: 2013-5-20 09:08
-5%2 == -(5%2)
5%-2 == (5%2*-1
java就是这样的规定的。
负数的取模运算,把负数的负号提出来,然后进行绝对值的取模运算,然后加上负号。
整数取负数的模也是一致的。
作者: 占琳    时间: 2013-5-20 09:15
本帖最后由 占琳 于 2013-5-20 10:07 编辑

取模运算  得出数值 跟你除的那个数一致  比如-5%2=-1 -5%-2=-1  5%2=1 5%-2=1  看出来规律了吗
结果就是跟5的数值类型一致 他要是负数 结果就是负的 要是正数 结果就是正的
作者: 黄炳期    时间: 2013-5-20 09:18
刘胜寒 发表于 2013-5-20 09:08
-5%2 == -(5%2)
5%-2 == (5%2*-1
java就是这样的规定的。

寒哥,第二句5%-2 == (5%2*-1  
这句还是不了解,你是不是打错符号了?还是我智商捉急。。。。
作者: 黄炳期    时间: 2013-5-20 09:28
占琳 发表于 2013-5-20 09:15
取模运算  得出数值 跟你除的那个数一致  比如-5%2=-1 -5%-2=1  5%2=1 5%-2=1  看出来规律了吗
结果就是跟 ...

按照这个规律,你算的-5%-2=1????算出的结果符号和-5不一样啊

作者: 神之梦    时间: 2013-5-20 10:06
Justin1841 发表于 2013-5-20 09:28
按照这个规律,你算的-5%-2=1????算出的结果符号和-5不一样啊

取模运算,结果是正还是负,看被模数是不是正负,也就是模左边的数是不是负数,如果是结果就是负的,如果不是结果就是正的。
作者: 占琳    时间: 2013-5-20 10:07
占琳 发表于 2013-5-20 09:15
取模运算  得出数值 跟你除的那个数一致  比如-5%2=-1 -5%-2=-1  5%2=1 5%-2=1  看出来规律了吗
结果就是 ...

不小心打错了一个数字 你们真敏锐
作者: 黄炳期    时间: 2013-5-20 10:44
占琳 发表于 2013-5-20 10:07
不小心打错了一个数字 你们真敏锐

嘎嘎!好吧!谢谢你了啊,能不能说下底层运算啊
作者: 黄炳期    时间: 2013-5-20 16:05
刘胜寒 发表于 2013-5-20 09:08
-5%2 == -(5%2)
5%-2 == (5%2*-1
java就是这样的规定的。

寒哥,我等您一天了。。。麻烦您能不能说清楚点呢。你的意思是不是5%-2 == (5%2)*-1?
作者: 曹世明    时间: 2013-5-20 16:20
求模x%y=z,z的符号只与第一个数有关,就是与x的符号有关,x 数为负数z就为负数;x为正数,z就为正数!
作者: 黄炳期    时间: 2013-5-20 17:27
Justin1841 发表于 2013-5-20 16:05
寒哥,我等您一天了。。。麻烦您能不能说清楚点呢。你的意思是不是5%-2 == (5%2)*-1? ...

好的,谢谢了啊
作者: 黄炳期    时间: 2013-5-20 17:28
曹世明 发表于 2013-5-20 16:20
求模x%y=z,z的符号只与第一个数有关,就是与x的符号有关,x 数为负数z就为负数;x为正数,z就为正数! ...

这么多位大神帮忙才弄懂,真的不好意思了都。
谢谢你了,哥儿们。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2