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码表可得对应字符
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。