位运算符

一、逻辑运算在位运算中应用

【】用于二进制运算的符号

【】逻辑运算符在二进制模式下参与位运算:都要转化为32位的二进制来参与位运算

【】与运算,通过与上几个二进制的1来获取原数固定的后几位,

与1获取最后一位,与11获取最后两位,与111获取最后三位,与1111获取最后四位数。

 想要取一个二进制数某一段,可以拿对应这一段的1去取

【】或|

 

【】异或^

【】可以用来简单加密,数据量不变,但是内容改变

【】反码~,一个正数取反加一就是负数,比如7,~7+1=-7,那么~7=-8
 
二、移位运算符--左移、右移、无符号右移

【】左移<<,右边尾部出现的空位补0

【】右移>>左边头部出现的空位用原来的该位数字补,原来0补位0,原来1补位1

【】右移相当于除二,所得结果舍弃小数部分(或者视为舍弃余数部分只要商)

【】无符号右移,几何右移,就是数据进行右移时高位出现的空位,不论原高位出现什么,空位都用0补
【】左移右移都是涉及2的倍数才使用的,大多数情况不用
 
三、练习

【1】2*8

移位运算在乘2除2上高效简便

System.out.println(2<<3);

 二进制乘法的实际运算规则:运算量大,

【2】二值互换问题

最简单的方式,通过第三方变量来完成,就是增加一个临时变量做临时存储

【】不用第三方变量,可以求和后运算

【】怕超出范围,还想要完成,可以通过位运算来完成(3^5=5^3)

这个方法记住就行,面试的时候用。虽然特别高效,但是阅读性很差

实际开发过程,必须使用第一种方式,阅读性最强,谁都能看懂
posted @ 2025-06-17 08:37  ibddindonon  阅读(10)  评论(0)    收藏  举报