Java字符数组到二进制字符串

时间:2014-03-21 14:38:01

标签: java arrays string binary bit-manipulation

考虑以下字符数组

char[] u = {'a', 'b', 'b', 'a' };

我正在寻找最有效的方法将其转换为二进制字符串(类型0110),因为我需要进行一些位移,并以有效的方式对数组进行计数。上面的数组将被转换为整数值6,二进制0110。

我已经使用转换为新字符串,然后对其进行两次替换调用,然后将其转换为基数为2的整数,但它对我来说并不是一种有效的方式。< / p>

任何帮助?

3 个答案:

答案 0 :(得分:1)

int num = 0;
for(char c : u) {
    num = (num << 1) + (c - 'a');
}

这应该有用。

答案 1 :(得分:1)

这个怎么样?

int output=0;
for(int i=0;i<u.length();i++)
    output=output<<1|u[i]-'a';

答案 2 :(得分:0)

试试这个

char[] u = {'a', 'b', 'b', 'a' };
 for(int i=0;i<u.length;i++){
  int y = (int)u[i];
  System.out.println(Integer.toBinaryString(y));}

希望有所帮助