JAVA-初步认识-第三章-位运算符
一. 位运算符
这里的位是指二进制位,bit位运算的符号。位运算符可以对一个或两个二进制编码进行操作。
观看ppt可知,位运算符不止一个,是由多个运算符组成,甚至使用了之前定义过的逻辑运算符号。运算符是在不断地发展,至少对于符号的利用,是在重复,虽然内容改变了。
二. 对不同的位运算符进行分析
a. &除了参与逻辑与运算外,还参与位运算,具体的位运算过程:6&3,一定要记得位运算是对二进制位进行计算,6的有效二进制位是110,而3的有效二进制位是011。&被运用到位运算中,仍然具备逻辑与运算的功能。对相同位置的二进制数进行逻辑与运算,0代表着false,1代表着true。110&010=010,转为10进制数就是2。最终,6&3=2. 注意:(1) 6实际上是int类型,具有32位二进制数,但在进行位运算时,都是采用的有效位,对于多余的0位并没有参与运算。(2) &位运算还有一个特点,任意列举一个两个二进制数之间的&位运算,
0111-0101-1010-0110
&0000-0000-0000-1111
可以看出,这样位运算的结果就是截取了后四位的数据。特殊情况下,截取数据也是&位运算的特色。
b. 同样的,|位运算符的使用和&位运算符类似。|位运算的特点是,可以将两个二进制数的有效位保留,1是有效位,
和前面说有效位不是一个意思。将双方的有效位保留。
c. ^位运算,^位运算的特点是保留所有,有一个1的位置的数据。一个数异或位运算同一个数两次,则还是这个数。6^3=5, 6^3^3=6。
进过一次异或,数值完全发生了变化。如果转化为二进制来看的话,里面的二进制数完全发生了变化,相当于进行了加密。
为了保证数据的安全,加密过后要还原数据,将还原的程序设置在U盘内,这在日常生活中很常见。
上面这三种,通过借用逻辑运算符来充当位运算符,得出了一系列十进制的结果。但这些结果都不重要,
重要的是计算机利用这些机制,来做一些其他的用途。
d. ~反码位运算。~6的反码是-7。如何计算的要学会。
三. 对&, |, ^, 进行深入分析
以上三种位运算的具体操作我们是清楚的,但是设计这样的运算符的原因是什么呢?
从表面上看,这三种位运算是对二进制数编码进行了数字的变换,字节大小没有变动。三种数字变换各不相同,各有各的特点。
这里说的特点都是针对位运算符左右两侧的二进制数而言的。
&位运算,在右边的二进制数位为1的情况下,可以保留左侧的对应二进制位的二进制数字;如果右侧二进制位上的数字全为1,
那么结果就是左侧的二进制数,起到了截取保留的作用。
|位运算,这个运算的特点是,输出的结果可以保留左右两个所有二进制位上的有效数字1。
^位运算,这个特点就是异或的特征,作用是为了进行加密,右侧的二进制数对左侧的二进制数加密。
总结:位运算符是在逻辑运算符的基础上,利用逻辑运算符的功能来作它用。