gpt4 book ai didi

Java 检查标志是否设置为整数

转载 作者:行者123 更新时间:2023-12-01 17:50:34 26 4
gpt4 key购买 nike

我有一种感觉,答案是位移位,但我无法让我的大脑完全理解它。

我读取了一些整数值,但总是不同,例如,我需要通过查看其位模式来检查是否设置了某些标志。

Flags:
0x00000002 = Do thing
0x80000000 = Do another thing

Value: 0x80000002

因此,从该值来看,两个标志都应该被设置。但我不确定实现这一点的最佳方法。我想我可以使用 BigInteger.testBit(); ,但我真的不想弄清楚每个标志中的确切位(有很多)。

我记得很久以前在C中做过类似的事情,就像if (value & flag) ,但 Java 似乎不喜欢这样。

任何建议的想法,我们将不胜感激。

谢谢

最佳答案

如果你想使用位,你可以使用AND

boolean isSet = (values & mask) == mask;

但是对于非常非常小的性能影响(可能没有大到足以注意到),您可以使用EnumSet得到相同的基本原理。

boolean isSet = myEnumSet.contains(MyEnumReferencingTheOldIntegerValue)

关于Java 检查标志是否设置为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50608763/

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