A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋启龙 中级黑马   /  2012-5-27 16:36  /  4325 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 宋启龙 于 2012-5-27 17:12 编辑

取模的负数运算规则  为什么是这样的结果??求原理??    -1%5  模-1  1%-5  模1     为什么????   

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

14 个回复

正序浏览
通过代码,我们去运行结果得到规律 :
                 * System.out.println(10 % 3);
                 *
                 * System.out.println(10 % -3);
                 *
                 * System.out.println(-10 % 3);
                 *
                 * System.out.println(-10 % -3);// 在做取模运算时, 和%右边的数的符号无关, 只取决于%左边的数的符号
               
                 
               
                 %运算规律,
                 *
                 *
                 * 左边小于右边结果是左边;
                 *
                 * 右边是1结果是0;
                 *
                 * 左边等于右边结果是0;
                 *
                 * 左边大于右边做运算;
                 *
                 * 在做取模运算时, 和%右边的数的符号无关, 只取决于%左边的数的符号;
                 *
                 * 任何数%2 结果不是0就是1,可以用于判断数据的奇偶!
               
回复 使用道具 举报
马林贺 发表于 2012-5-27 17:21
告诉你一个取摸的口诀
  
  左边如果小于右边 等于左边

学习了   
回复 使用道具 举报
取模的正负是和要取模的数有关的,和模的正负无关,
回复 使用道具 举报
杨卫腾 发表于 2012-5-27 22:06
这个口诀真的不错,所有取模问题迎刃而解了。

  互相学习!
回复 使用道具 举报
马林贺 发表于 2012-5-27 17:21
告诉你一个取摸的口诀
  
  左边如果小于右边 等于左边

这个口诀真的不错,所有取模问题迎刃而解了。
回复 使用道具 举报
马林贺 发表于 2012-5-27 17:22
左边等于右边  第二句更正下。

谢谢拉!两边都是负数???
回复 使用道具 举报
马林贺 发表于 2012-5-27 17:22
左边等于右边  第二句更正下。

嗯 精辟 有时候这个可以用到!
回复 使用道具 举报
   左边等于右边  第二句更正下。
回复 使用道具 举报
   告诉你一个取摸的口诀
  
  左边如果小于右边 等于左边
  
  左边等于左边     等于零
   
  在有负数的时候,只看左边右边不用看

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
我能驾驭住 发表于 2012-5-27 17:08
-1%5  模-1   -1%5  模1     为什么????   

1:记住一点,我们求余时,看被除数的正负,如果是正,结果为 ...

谢谢!!解释的很清楚。
回复 使用道具 举报
-1%5  模-1   -1%5  模1     为什么????   

1:记住一点,我们求余时,看被除数的正负,如果是正,结果为正,如果是负,结果是负
你看-1%5,首先以看被除数,-1是负数,结果就是负数,再求1%5,余数是1,故结果加上负号就行!
1%5 被除数是1,1是正数,结果就是正数,而1%5,余数是1,故结果是+1,故是1

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 宋启龙 于 2012-5-27 17:22 编辑
飞舞❤心动 发表于 2012-5-27 16:48
啊 你没有发任何东西 你是想知道?
>>> 这是无符号右移
  无符号右移运算符>>>

-1%5  模-1   -5%-1 模1     为什么????   
回复 使用道具 举报
啊 你没有发任何东西 你是想知道?
>>> 这是无符号右移
  无符号右移运算符>>>
  它的通用格式如下所示:
  value >>> num
  num 指定要移位值value 移动的位数。
  无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位
  无符号右移运算符>>> 只是对32位和64位的值有意义。
>> 这是右移运算符
  右移运算符<<使指定值的所有位都右移规定的次数。
  1)它的通用格式如下所示:
  value >> num
  num 指定要移位值value 移动的位数。
  右移的规则只记住一点:符号位不变,左边补上符号位
<< 这是左移运算符
  左移运算符<<使指定值的所有位都左移规定的次数。
  1)它的通用格式如下所示:
  value << num
  num 指定要移位值value 移动的位数。
  左移的规则只记住一点:丢弃最高位,0补最低位
  如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。
  2)运算规则
  按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
  当左移的运算数是int 类型时,每移动1位它的第31位就要被移出并且丢弃;
  当左移的运算数是long 类型时,每移动1位它的第63位就要被移出并且丢弃。
  当左移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。


回复 使用道具 举报
黑马训练营:我人生的新起点,在我大学的毕业的时候我换了一条新的道路,为了拥有了你而努力,一分耕耘一份收获,让我用自己的努力来验证你我的价值!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马