java 的字符转换问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:55:15
8个字符用int型的数组表示里面的二进制位,现在怎么把这个字符显示出来!
如:
int a={0,1,1,1,1,1,0,1,0........}共64位!
在线等~~
能否用移位的方法来解决呢?改怎么弄

public static void main(String[] args) {

int[] arr = { 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0 };

// 将数组转换成字符串
StringBuilder builder = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
builder.append(arr[i]);
if((i + 1) % 8 == 0){
builder.append(" ");
}
}
String str = builder.toString(); // str = 01000001 01000010

// 将字符串拆分
String[] numbers = str.split(" "); // numbers = { "01000001", "01000010" }

// 转换和输出 输出:AB
for(String num : numbers){
int t = Integer.valueOf(num, 2);
System.out.print((char) t);
}
}

强制转化一个char类型为一个int类型,将得到这个字符的数字编码
然后再转化成二进制数,有已经定义好的方法
然后转化成字符串,取其中的0和1
其实用一个字符串来存二进制编码是比较合适的,不用整型数组

Integer.toBinaryString

public static String toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
如果参