当前位置:首页 > Java 语言特性 > 正文

Java位运算符详解:从基础语法到权限管理实战应用

int a = 5; // 二进制:0101 int b = 3; // 二进制:0011

// 按位与 int result1 = a & b; // 结果:0001(十进制1)

// 按位或
int result2 = a | b; // 结果:0111(十进制7)

// 按位取反 int result3 = ~a; // 结果:...11111010(补码表示)

int a = 5; // 二进制:0101 int b = 3; // 二进制:0011 int result = a & b; // 结果:0001(十进制1)

// 定义权限常量 int READ = 1; // 二进制:0001 int WRITE = 2; // 二进制:0010
int EXECUTE = 4; // 二进制:0100

// 用户权限设置 int userPermissions = READ | WRITE; // 同时具有读和写权限

Java位运算符详解:从基础语法到权限管理实战应用

// 权限检查 boolean canRead = (userPermissions & READ) != 0; boolean canExecute = (userPermissions & EXECUTE) != 0;

// 动态添加权限 userPermissions |= EXECUTE; // 添加执行权限

// 动态移除权限
userPermissions &= ~WRITE; // 移除写权限

// 适合逻辑运算符的场景 boolean isLoggedIn = true; boolean hasPermission = false; boolean canAccess = isLoggedIn && hasPermission;

Java位运算符详解:从基础语法到权限管理实战应用

// 适合位运算符的场景 int flags = READ | WRITE; boolean canRead = (flags & READ) != 0;

// 方法一:逐位检查 public static int hammingWeight1(int n) {

int count = 0;
while (n != 0) {
    count += (n & 1);
    n >>>= 1;
}
return count;

}

// 方法二:利用n & (n-1)技巧 public static int hammingWeight2(int n) {

int count = 0;
while (n != 0) {
    n &= (n - 1);
    count++;
}
return count;

}

Java位运算符详解:从基础语法到权限管理实战应用

你可能想看:

相关文章:

文章已关闭评论!