我想在a和b(十进制)之间进行“AND”操作。 b的值在代码中确定。结果,如果我写得像:
String g= Integer.toHexString(b);
int k=a & g;
我收到错误,因为它应该像:
int k=a & 0xFF;
不知何故0x应该在十六进制值之前,同时它不能是String类型。对于第二个操作数可以是变量的情况,我没有在Internet中找到任何示例。我应该手动编写一个for循环来逐位应用AND操作,还是有一个直接的解决方案呢? 感谢您的帮助。
答案 0 :(得分:6)
如果b已经是整数,那么你的代码应该是:
int k = a & b;
数字是数字是一个数字。 0xFF
与255
的人类表现与& {运营商。对于计算机来说,没有“Hex Integer”和“Decimal Integer”这样的东西,它只是一个值。写作的不同方式是在人的尽头。
答案 1 :(得分:3)
这样做:
int k = a & b;
在应用int
运算符之前,无需将&
转换为十六进制。实际上,这是一个错误,因为toHexString()
返回的值是String
,&
运算符仅适用于整数。
答案 2 :(得分:1)
在java代码中编写十六进制文字0xFF时,它与写入整数文字255相同。
因此没有必要将你的整数转换成字符串,做一个& b就足够了。十六进制表示法就是指定文字
的方式