现在的位置: 首页 > 综合 > 正文

java位运算和移位运算符(翻译自Java Tutorials)

2011年06月26日 ⁄ 综合 ⁄ 共 677字 ⁄ 字号 评论关闭

原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2820012.html

英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

java程序语言针对整型提供了位运算和移位操作。下面讨论的操作符,比较少用。该章节的目的很明确,让你知道有这些操作符的存在。

一元的按位求补运算符“~”反转位;它可以用于任何整型,让每个0变为1,每个1变为0.例如,字节a包含8个位,如果位模式是"00000000",使用该操作符,会变成 "11111111"。

有符号左移操作符"<<",向左移动位模式,有符号右移位操作">>",向右移动位模式。位模式是左手边的操作数,移动的位置数是右手边的操作数。

无符号右移操作符">>>"向最左边移动0,而对于有符号左移操作符 ">>",最左边的位依靠对应的符号扩展(译者注:对于正数,最左边的那位是1,有符号左移后最左边那位还是1,而无符号左移最右边那位就是0了)。

按位 & 操作符执行一个按位与操作

按位^操作符执行一个按位异或操作

按位|操作执行一个按位与操作

下面的程序,BitDemo,使用按位与操作输出number"2"到标准输出。

class BitDemo {
    public static void main(String[] args) {
        int bitmask = 0x000F;
        int val = 0x2222;
        // prints "2"
        System.out.println(val & bitmask);
    }
}

 

抱歉!评论已关闭.