1. java 位掩码
java 位掩码,在java开发中很少有场景会用到掩码,但是当系统中需要判断某个对象是否有 某些权限时,可以通过位掩码来做。
位掩码 主要通过位运算,例如与(&)、非(~)、或(|)、异或(^)、移位(<>)等来实现 权限判断功能。
1.1 简单介绍一下位运算符(计算均为二进制计算)
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
异或(^ ): 一句话,相异为真 返回 boolean
与(&): 只有两位都为 1 则为真 ,0001 & 0101 也就是 0001
或(|): 只要两位有一位 为真则为真, 0001 | 0100,也就是0101
非(~): 对自身取反。
注意 非运算比较特殊 引用网上大神的解释(如果看不懂就去翻翻计算机组成原理)在Java中,所有数据的表示方法都是以补码的形式表示,如果没有特殊说明,Java中的数据类型默认是int,int数据类型的长度是8位,一位是四个字节,就是32字节,32bit.
比如:~37
37 转为二进制是100101
补码后为: 00000000 00000000 00000000 00100101
取反为: 11111111 11111111 11111111 11011010