我是一个java noob所以如果我不能很好地解释我的问题,请耐心等待。
所以数字254是二进制的11111110。我的问题是我想抓住最后2位(10)。我被告知使用%运算符来执行此操作但我不知道如何操作。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
假设您想获取最后2位二进制数字的数值,我们可以使用掩码。
public static void main(String[] args) {
int n = 0b1110;
int mask = 0b11;
System.out.println(n & mask);
}
代码正在执行的操作是获取数字,在本例中为0b1110
并使用定义的and
进行0b11
。
0b
是告诉java你将数字表示为二进制的。
如果您想获取二进制数字二进制数,可以使用:
Integer.toBinaryString(n & mask)
答案 1 :(得分:3)
您可以使用%转换为二进制,但我相信它更容易使用Integer.toBinaryString()然后charAt()来获取最后2个字符,就像在这里一样 How do you get the last character of a string?
答案 2 :(得分:0)
最后两位可以通过x % 4
或x & 3
来获得。
x % 4
是除以4
之后的余数,这是一个数字0
- 3
,由最后两位表示。
x & 3
是一个带有二进制数11
的逐位AND运算,即将所有其他位置零。
第二个通常是运行时最快的,也是执行位操作的首选方法。 (使用逐位运算符进行位操作,对吧?)