首页 / 软件开发 / JAVA / Java编程那些事儿25—位运算符
Java编程那些事儿25—位运算符2010-02-27 csdn博客 陈跃峰4.5 二进制运算符由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符。使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程、硬件编程等领域。二进制运算符在数学上的意义比较有限。在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进制以数字0和x开头,例如0x12,0xaf等等。在计算二进制运算时,Java语言的执行环境(JRE)首先将十进制的数字转换为二进制,然后进行运算。如果输出结果的值,则数字会被转换成十六进制进行输出。需要注意的是:1、正数的机器数是原码,负数的机器数是补码,计算时需要小心。关于二进制和补码的计算可以参看《Java编程那些事儿7——进制的概念》和《Java编程那些事儿8——计算机内部的数据表达》。2、整数型的计算结果都是int型,而不管是对byte还是short进行二进制运算。4.5.1 位运算符Java语言中的位运算符主要有4种:&(位与)、|(位或)、^(异或)和~(按位取反),下面依次介绍运算规则和使用示例。l&(AND)运算规则:参与运算的数字,低位对齐,高位不足的补零,对应的二进制位都为1,则运算结果为1,否则为0。适用场合:屏蔽数字中某一位或某些位。因为任何数和0与都是0。示例代码:int a = 4;
int b = 10;
int c = a & b;
计算过程:4的二进制形式为0000 0000 0000 0000 0000 0000 0000 010010的二进制形式为0000 0000 0000 0000 0000 0000 0000 1010按照计算规则,结果为0000 0000 0000 0000 0000 0000 0000 0000这个数字转换为十进制就是数字0l| (OR)运算规则:参与运算的数字,低位对齐,高位不足的补零,对应的二进制位有一个为1则为1,否则为0。适用场合:将数字中某一位或某些位修改成1。因为1和任何数或都是1。示例代码:int a = 4;
int b = -10;
int c = a | b;
计算过程:4的二进制形式为0000 0000 0000 0000 0000 0000 0000 010010的二进制形式为1111 1111 1111 1111 1111 1111 1111 0110按照计算规则,结果为1111 1111 1111 1111 1111 1111 1111 0110这个二进制数转换为十进制就是数字-10。