点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第二章汇总
2.9 按位操作
你可能已经知道,我们讨论过的所有整型变量在内部都是以二进制形式表示的。一个ink类型的数值由32位二进制数字组成,在计算机界被称为位。你可以使用位运算符(bitwiseoperator)按位对整型数值进行操作,有4个可用来按位操作的位运算符:
每个运算符都对独个的二进制位进行操作,如下所述:
"非"运算符~,属一元运算符,其结果对每个二进制位的内容求反,即1变为0,0变为1.
"与"运算符&,将两个操作数对应的二进制位进行"与",如果第一个操作数与第二个操作数的对应位都是1,则该位结果为1,否则该位结果为0
"或"运算符1,将两个操作数对应的二进制位进行"或",如果两个操作数的对应位,其中有一个是1,则该位结果为1.只有两个对应的二进制位都是O时,该位结果才为0.
"异或"运算符^,将两个操作数对应的二进制位进行"异或",如果第一个数和第二个操作数对应的位值相同,则该位结果为0,否则该位结果为1.
在下面这个例子中,你可以看到这些运算符的操作效果。
示意图中显示了组成操作数和结果的二进制数字。在三种二进制操作中,每一种都分别作用于两个操作数所对应的位。"非"运算符对操作数中的每一位内容求反。
由于在位操作中,你关心的是每一个二进制位,所以用通常的十进制数值书写常数,不是很便利。在这种情况下,书写二进制数值的最好方法是用十六进制数值,这是因为你可以很快地将数值从二进制转换到十六进制,反之亦然。在附录E中有更加详细的介绍。
结果将互换a和b的值,但是要记住,它只能应用于整型数。我们可以用任意一对数值a和b来试验一下,例如它们分别为DxD00F和OxABAD.我们也只看每个变量的16位。第一条语句将a改变为新值:
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |