提取二进制

时间:2016-05-16 22:48:22

标签: java binary bits

我是一个java noob所以如果我不能很好地解释我的问题,请耐心等待。

所以数字254是二进制的11111110。我的问题是我想抓住最后2位(10)。我被告知使用%运算符来执行此操作但我不知道如何操作。任何人都可以帮我解决这个问题吗?

3 个答案:

答案 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 % 4x & 3来获得。

x % 4是除以4之后的余数,这是一个数字0 - 3,由最后两位表示。

x & 3是一个带有二进制数11的逐位AND运算,即将所有其他位置零。

第二个通常是运行时最快的,也是执行位操作的首选方法。 (使用逐位运算符进行位操作,对吧?)