caritasem

java支持的位运算符有7个,分为两类:位逻辑运算和移位运算。位逻辑运算符包括按位取反(~)、按位与(&)、按位或( )和按位异或(^)4种,。移位运算符包括左移(«)、右移(»)和无符号右移(»>)3种。位运算符只能用于整型数据,包括byte、short、int、long和char类型。下表列出了各种位运算符的功能与示例。假设a = 10, b = 3。

~运算符是对运算数的每一位按位取反。
下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:

操作符 描述 例子
& 如果相对应位都是1,则结果为1,否则为0 A & B得到 12,即0000 1100
| 如果相对应位都是0,则结果为0,否则为1 A | B得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 A ^ B得到 49,即 0011 0001
~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 ~A得到 -61,即1100 0011
« 按位左移运算符。左操作数按位左移右操作数指定的位数。 (低位补零) A « 2得到 240,即 1111 0000
» “有符号”按位右移运算符。左操作数按位右移右操作数指定的位数。 该操作符使用 “符号扩展”:若符号为正,则高位插入 0;若符号为负,则高位插入 1。 A » 2得到15即 1111
»> “无符号”按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 该操作符使用 “零扩展”,无论正负,都在高位插入 0。 A »> 2得到 15,即 0000 1111