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
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"
));
//@%$+