首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中删除标志

如何在Java中删除标志
EN

Stack Overflow用户
提问于 2011-09-29 18:05:23
回答 1查看 10K关注 0票数 29

您好,我需要删除Java中的一个标志。我有以下常量:

代码语言:javascript
复制
public final static int OPTION_A = 0x0001;
public final static int OPTION_B = 0x0002;
public final static int OPTION_C = 0x0004;
public final static int OPTION_D = 0x0008;
public final static int OPTION_E = 0x0010;
public final static int DEFAULT_OPTIONS =
       OPTION_A | OPTION_B | OPTION_C | OPTION_D | OPTION_E;

我想从默认选项中删除,例如OPTION_E。为什么下面的代码不正确?

代码语言:javascript
复制
// remove option E from defaul options:
int result = DEFATUL_OPTIONS;
result |= ~OPTION_E;
EN

回答 1

Stack Overflow用户

发布于 2011-09-29 18:06:40

你必须写

代码语言:javascript
复制
result &= ~OPTION_E;

更长的解释:

您必须以位为单位进行思考:

代码语言:javascript
复制
~OPTION_E    // 0x0010 -> 0xFFEF
DEFATUL_OPTIONS //     -> 0x001F
0xFFEF | 0x001F //     -> 0xFFFF
0XFFEF & 0x001F //     -> 0x000F

OR永远不会清除1位,它最多只能设置更多位。另一方面,AND将清除位。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7595701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档