gpt4 book ai didi

Java 位掩码和登录安全

转载 作者:行者123 更新时间:2023-11-29 08:12:25 25 4
gpt4 key购买 nike

好吧,我真的不明白这个循环是如何工作的,它是最让我烦恼的逻辑语句。 permissions 是我分配的常量值 127。Roles.java 包含常量值,用于确定哪些角色可以访问网站的某些页面。问题是当位掩码等于 1 时逻辑语句返回真。这怎么可能?

for (int bitMask = 1; bitMask <= 0x8000; bitMask *= 2)
{
boolean hasBit = (permissions & bitMask) != 0;
if (hasBit)
{
String role = Roles.getRole(bitMask);
if (role != null)
{
//Do stuff
}
else
{
//No role assigned
}
}

最佳答案

这些数字中每一个的二进制等价物

127 ==  1111111
1 == 1

AND 运算符将返回在 permissionbitMask 中设置的位。所以结果是

              1

这是 != 0

有可能permissions应该是128,因为

128 == 10000000

这将导致您期望的零。

关于Java 位掩码和登录安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com