一、位操作:
shl(bits) – 左移位 (Java’s <<)
shr(bits) – 右移位 (Java’s >>)
ushr(bits) – 无符号右移位 (Java’s >>>)
and(bits) – 与 &
or(bits) – 或 ||
xor(bits) – 异或
inv() – 反向
val a = 5
val b = a shl 2 //左移2位,5*2*2=20
println(b) //20
二、位运算符:
运算符 | 表示含义 |
---|---|
and(bits) | 按位与 |
or(bits) | 按位或 |
inv(bits) | 按位非 |
xor(bits) | 按位异或 |
shl(bits) | 左移运算符 |
shr(bits) | 右移运算符 |
ushr(bits) | 无符号右移运算符 |
三、Kotlin的位运算符只能对Int和Long两种数据类型起作用。
四、位操作和位运算实例
通过位运算来保证头尾不超过数组范围,通过位操作来扩容(数组长度保持为2的整数倍,方便进行位运算)