JS字符串与二进制的转化

时间:2023-01-11 20:47:24

JS字符串与二进制的相互转化

1
2
3
4
5
//字符串转ascii码,用charCodeAt();
//ascii码转字符串,用fromCharCode();
var  str =  "A" ;
var  code = str.charCodeAt();
var  str2 = String.fromCharCode(code);

  十进制转二进制

1
2
3
var  a =  "i" ;
console.log(a.charCodeAt());  //105
console.log(a.charCodeAt().toString(2));  //1101001

  

1
2
3
var  a =  "我" ;
console.log(a.charCodeAt());  //25105
console.log(a.charCodeAt().toString(2));  //110001000010001

  

1
2
3
4
var  a =  "我们" ;
console.log(a.length);  //2
var  list = a.split( "" );
console.log(list.length);  //2<br>console.log(a.charCodeAt().toString(2)); //110001000010001 100111011101100

  

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
29
30
31
32
33
34
35
//将字符串转换成二进制形式,中间用空格隔开
function  strToBinary(str){
     var  result = [];
     var  list = str.split( "" );
     for ( var  i=0;i<list.length;i++){
         if (i != 0){
             result.push( " " );
         }
         var  item = list[i];
         var  binaryStr = item.charCodeAt().toString(2);
         result.push(binartStr);
     }   
     return  result.join( "" );
}
 
console.log(strToBinary( "我们" ));  //110001000010001 100111011101100
console.log(strToBinary( "@%$+" ));  //1000000 100101 100100 101011
 
//将二进制字符串转换成Unicode字符串
function  binaryToStr(str){
     var  result = [];
     var  list = str.split( " " );
     for ( var  i=0;i<list.length;i++){
          var  item = list[i];
          var  asciiCode = parseInt(item,2);
          var  charValue = String.fromCharCode(asciiCode);
          result.push(charValue);
     }
     return  result.join( "" );
}
 
console.log(binaryToStr( "110001000010001 100111011101100" ));  //我们
console.log(binaryToStr( "1000000 100101 100100 101011" ));  //@%$+