考虑以下字符数组
char[] u = {'a', 'b', 'b', 'a' };
我正在寻找最有效的方法将其转换为二进制字符串(类型0110),因为我需要进行一些位移,并以有效的方式对数组进行计数。上面的数组将被转换为整数值6,二进制0110。
我已经使用转换为新字符串,然后对其进行两次替换调用,然后将其转换为基数为2的整数,但它对我来说并不是一种有效的方式。< / p>
任何帮助?
答案 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));}
希望有所帮助