JAVA-初步认识-第三章-移位运算符
对前面涉及的逻辑运算符进行一个总结,逻辑运算符有这么几个,与运算符&,或运算符|,非运算符!,异或运算符^,双与运算符&&,双非运算符||,接着又从逻辑运算符的基础上发展了位运算符,&运算符,|运算符,~运算符(反码),^运算符。位运算符是对所有的逻辑进行了利用。与,或,非,异或。
比较运算符是对数值进行比较大小,得到的结果为boolean型数据。逻辑运算符是对boolean型数据进行逻辑运算,得到的结果还是boolean型数据。位运算符是对二进制数进行逻辑运算,得到的是数值型数据。
一. 概述
位运算符的种类比较繁多,都来自与逻辑运算符,算是对逻辑运算符的发展。
二. 移位运算符
移位运算符有三个:左移,右移,无符号右移。符号分别是<<, >>, >>>。左右移都会导致符号的变化?
其实就操作来看,并不复杂,但是诞生这种操作的原因是什么?
<<左移:是对二进制编码进行移位,去除溢出位,填加空白位。举例说明:3<<2, 输出的结果为3*22=12,
3<<3, 输出的结果为3*23=24。左移可以完成基于2的次幂运算,比如1<<1, 1<<2, 1<<3......可以得出2的不同次幂。
>>右移:二进制码往右进行移位,去除右边溢出的位,填补左侧的高位。高位填补时,原先是1就补1,原先是0就补0,
如果是缺少多个高位,怎么办?是按照对应的原先的高位数据来补充么?右移几位,就是除以2的几次幂。如果原先是负数,
移完后的结果也是负数,保证了高位不变。
>>>无符号右移,就是在右移的基础上,填补高位全都是用的0。
三. 总结
就目前的操作来看,移位运算符只能是针对的2的次幂的乘除。具体的运用还要看后面的讲解。