如何在"二进制字符串上使用移位运算符"?

时间:2015-02-18 21:46:56

标签: java binary bit-shift

到目前为止,我将二进制数存储为字符串:

String value = "111111110000000010101010";

我希望使用移位运算符,使其等于000000000000000011111111

我知道我需要将它移动16个点,但是如何转换字符串值以便我可以在其上使用移位运算符?

2 个答案:

答案 0 :(得分:2)

您可以使用Integer.parseInt(String, int)将表示二进制数据的String转换为int:

int value = Integer.parseInt("111111110000000010101010", 2);

然后您可以使用bit shift operators

进行转换
  

签名的左移运营商"<<&#;将位模式向左移动,并使用带符号的右移运算符">>"将位模式向右移动。位模式由左侧操作数给出,位置数由右侧操作数移位。无符号右移运算符">>>"将零移动到最左边的位置,而在">>"之后的最左边的位置取决于符号扩展。

答案 1 :(得分:1)

另一种方法是使用Java 7's binary literal notation,以避免问题......

int value = 0b111111110000000010101010;
int shifted = value >> 16;
System.out.println(Integer.toBinaryString(shifted)); 
=> 11111111