对java中的变量应用AND操作

时间:2012-12-20 22:37:40

标签: java variables hex decimal bit-manipulation

我想在a和b(十进制)之间进行“AND”操作。 b的值在代码中确定。结果,如果我写得像:

String g= Integer.toHexString(b);
int k=a & g;

我收到错误,因为它应该像:

int k=a & 0xFF;

不知何故0x应该在十六进制值之前,同时它不能是String类型。对于第二个操作数可以是变量的情况,我没有在Internet中找到任何示例。我应该手动编写一个for循环来逐位应用AND操作,还是有一个直接的解决方案呢? 感谢您的帮助。

3 个答案:

答案 0 :(得分:6)

如果b已经是整数,那么你的代码应该是:

int k = a & b;

数字是数字是一个数字。 0xFF255的人类表现与& {运营商。对于计算机来说,没有“Hex Integer”和“Decimal Integer”这样的东西,它只是一个值。写作的不同方式是在人的尽头。

答案 1 :(得分:3)

这样做:

int k = a & b;

在应用int运算符之前,无需将&转换为十六进制。实际上,这是一个错误,因为toHexString()返回的值是String&运算符仅适用于整数。

答案 2 :(得分:1)

在java代码中编写十六进制文字0xFF时,它与写入整数文字255相同。

因此没有必要将你的整数转换成字符串,做一个& b就足够了。十六进制表示法就是指定文字

的方式