详解Java的按位操作符
Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。而我们知道比特就是0和1,那么,位操作就是对这些数据进行基本的操作。如果基本类型是char、byte或者short类型的数值进行移位处理,那么会转化成int类型,再进行移位的处理
Java的按位操作符
按位操作符会对两个参数对应的位执行布尔代数运算,并最终生成一个结果。这个操作符有与(&)、非(~)、或(|)、异或(^)。我们知道单位“比特”(bit),即代进制位,都是0和1,异或(^)可能比较复杂点,两个操作数的位中,相同则结果为0,不同则结果为1。那么最基本的逻辑就像下面这个样子。
1&1→11&0→0~1→0~0→11|1→11|0→11^0→1 (1为01,0为00,那么结果就是01,还是1)1^1→0
Java的移位操作符
Java的移位操作符无非就是对二进制进行位移。
进行<<就是左移,也就是所有所有二进制往左边移动一个位,00100000<<1等于01000000
进行>>右移,也就是所有所有二进制往右边移动一个位,00100000>>1等于00010000。
可以试试下面的例子,整数型的也是变成二进制来计算:
classTest{ publicstaticvoidmain(String[]args){ intnumInt1=3; intnumInt2=-3; System.out.println(numInt1<<1); System.out.println(numInt1>>1);System.out.println(numInt2<<1); System.out.println(numInt2>>1); } }/*输出的结果如下(www.breakyizhan.com) 6--->00000011<<1,变为00000110 1--->00000011>>1,变为00000001...1后面的1被顶出去了,所以结果为1 -6-->11111101<<1,变为11111010取反+1=00000110-6 -2-->11111101>>1,变为11111110取反+1=00000010-2 */
当然,还有Java的三元操作符,这部分的功能和if-else有点类似,具体更多内容可以看:
Java的三元操作符
总结
以上所述是小编给大家介绍的Java的按位操作符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。