本帖最后由 应广驰 于 2012-8-20 03:33 编辑
当右移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型 ,所以对于比int还要小的数值类型(short、byte)不应当进行无符号右移运算。
至于-1>>-1是应该是等于-1的,java中整形 右移运算右边操作数 超过32的,就移动模32取得的余数,如果右边操作数是负数,就用32减去该操作数绝对值模32取得的余数,获得的正数即操作数。
(后面的那个问题,说实话是我以前通过代码试出来的,准确性不敢肯定,不过我试过不少数,得到的都行,在这里,也希望哪位真正知道的兄弟指导一下) |