1
2
3
4
5
6
7
8
9
|
public void toBinary(){
String str = "王雪" ;
char [] strChar=str.toCharArray();
String result= "" ;
for ( int i= 0 ;i<strChar.length;i++){
result +=Integer.toBinaryString(strChar[i])+ " " ;
}
System.out.println(result);
}
|
输出结果为:111001110001011 1001011011101010
Java将二进制码转成字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//将二进制字符串转换成int数组
public int [] BinstrToIntArray(String binStr) {
char [] temp=binStr.toCharArray();
int [] result= new int [temp.length];
for ( int i= 0 ;i<temp.length;i++) {
result[i]=temp[i]- 48 ;
}
return result;
}
//将二进制转换成字符
public char BinstrToChar(String binStr){
int [] temp=BinstrToIntArray(binStr);
int sum= 0 ;
for ( int i= 0 ; i<temp.length;i++){
sum +=temp[temp.length- 1 -i]<<i;
}
return ( char )sum;
}
public void BinstrToStr(){
String binStr = "111001110001011 1001011011101010 " ;
String[] tempStr=binStr.split( " " );
char [] tempChar= new char [tempStr.length];
for ( int i= 0 ;i<tempStr.length;i++) {
tempChar[i]=BinstrToChar(tempStr[i]);
}
System.out.println(String.valueOf(tempChar));
}
|
根据Unicode码表,将二进制码转换成字符
1、先将二进制转换成十六进制
111001110001011 -->0111 0011 1000 1011 不够四位则高位补零(左边) -->0x738b
1001011011101010 -->1001 0110 1110 1010 -->0x96ea。然后查Unicode码表可得对应字符
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。