位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(I)、异或(‘)、右移(》)、左移(《)及无符号右移(>》)。位运算符只能对整型和字符型数据进行操作。

    Java提供两种右移运算符。
    熟悉的运算符“>>”执行算术右移,它使用最高位填充左侧的空位。右移的结果为:每移一位,第一个操作数被2除一次,移动的次数由第二个操作数确定。
算术右移不改变原数的符号,而逻辑右移不能保证这一点。
    移位运算符约简其右侧的操作数,当左侧操作数是int类型时,右侧以32取模;当左侧是long类型时,右侧以64取模。所以,执行
    int x;
    x>≥>32;
后,x的结果不改变,而不是通常期望的0。这样可以保证不会将左侧操作数完全移走。
   “》”运算符只用于整型,它只对int或long值起作用。如果用于short或byte值,则在进行“》”操作之前,使用符号扩展将其提升为int型,然后再移位。

posted on 2008-10-24 18:02  vanllia_sky  阅读(885)  评论(0编辑  收藏  举报