黑马程序员技术交流社区

标题: 请教:关于%运算的问题 [打印本页]

作者: 黑龙江—刘鹏    时间: 2012-7-6 22:34
标题: 请教:关于%运算的问题
本帖最后由 黑龙江—刘鹏 于 2012-7-6 22:41 编辑

class lianxi
{
public static void main(String[] args)
{

int a=100,b=101,d;
d = a%-b;

System.out.print(d);
}
}
运算结果是 d=100;
那么%不是取余数吗,那么结果为什么是100呢

作者: 打工人    时间: 2012-7-6 22:37
100除以101等于0,余100
作者: 黑龙江—刘鹏    时间: 2012-7-6 22:40
冯海霞 发表于 2012-7-6 22:37
100除以101等于0,余100

哈? 是这样啊- - 谢谢咯{:3_53:}
作者: 谭培龙    时间: 2012-7-6 23:24
看了半天 发现是a%负b
一个数%一个比他大的负数等于原来的数
作者: 金龙    时间: 2012-7-7 00:56
取模的规律: 1:当左边大于右边,结果为余数。
2:当左边等于右边,结果为零。
3:当左边小于右边,结果为左边。
4:符号的正负取决于左边。
————————————————举个详细的例子。
5%2=1
5%6=5
5%-6=5
-5%-6=-5
-5%-3=-2
-5%3=-2

参照结果,这回明白了么?   
作者: 潘星    时间: 2012-7-7 01:05
左边小于右边就取左边的数为结果
作者: 马林康    时间: 2012-7-7 01:22
金龙 发表于 2012-7-7 00:56
取模的规律: 1:当左边大于右边,结果为余数。
2:当左边等于右边,结果为零。
3:当左边小于右边,结果为 ...

哈哈,第一条和第四条不准确 -5%-6 左边大于右边 -5%-3左边小于右边
作者: 杨贺阳    时间: 2012-7-7 01:49
马林康 发表于 2012-7-7 01:22
哈哈,第一条和第四条不准确 -5%-6 左边大于右边 -5%-3左边小于右边

说的好,他的应该加个前提:正整数。
其实我感觉,这样的总结也记不住,不如直接去除,取余数。
6%5    就是6除以5等于1 余数是1
5%6   就是5除以6  不够除 直接余5
-6%5  就是-6除以5  等于-1 余数是-1
5%-6 就是5除以-6 不够除 直接余5            :lol
作者: 金龙    时间: 2012-7-7 07:47
马林康 发表于 2012-7-7 01:22
哈哈,第一条和第四条不准确 -5%-6 左边大于右边 -5%-3左边小于右边

木有看到第4条吗,符号的正负取决于左边
作者: 李照飞    时间: 2012-7-7 08:10
取模时先不看符号,将左右两个数的绝对值取模得到结果,然后结果的符号跟据符号左边来判断,即符号左边是正结果为正,符号左边是负结果为负。
-6%-5       1.|-5|=5    |-6|=6   
               2.6%5=1
               3.左边符号是负,所以结果为-1
-5%-6      1.|-5|=5    |-6|=6
               2.5%6=5  (5<6,所以5除以6商是0,余数是5,所以模为5)
               3.左边符号是负,所以结果为-5
作者: 黑龙江—刘鹏    时间: 2012-7-7 09:15
嗯 哈哈 这个是基础呀 看来我初中也有漏洞不小啊




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