Javascript 将字符串转换为二进制并返回
我得到一个任务,将给定的字符串转换成二进制,然后再转换回字符串 第一部分很简单Javascript 将字符串转换为二进制并返回,javascript,character,Javascript,Character,我得到一个任务,将给定的字符串转换成二进制,然后再转换回字符串 第一部分很简单 函数字符串二进制(输入){ 变量字符=输入。拆分(“”); 返回字符.map(函数(char){ 返回char.charCodeAt(0).toString(2) }).加入(“”); } 警报(stringToBinary('test'))首先,您需要获取与转换回字符串的输入相同长度的转换字符串,获取长度为8且填充字符为零 函数字符串二进制(输入){ 变量字符=输入。拆分(“”); 返回字符 .map(函数(字
函数字符串二进制(输入){
变量字符=输入。拆分(“”);
返回字符.map(函数(char){
返回char.charCodeAt(0).toString(2)
}).加入(“”);
}
警报(stringToBinary('test'))
首先,您需要获取与转换回字符串的输入相同长度的转换字符串,获取长度为8
且填充字符为零
函数字符串二进制(输入){
变量字符=输入。拆分(“”);
返回字符
.map(函数(字符){
返回char.charCodeAt(0).toString(2).padStart(8,0)
})
.join(“”);//用每个字节的空格显示
//观察前导零,前一个代码中缺少该值
}
console.log(stringToBinary('test'))
您的stringToBinary
函数有问题。将一个字符转换为二进制只会让您得到最少的位。因此,您仍然需要将其转换为8位字符串
另一件事是,您只需从二进制文件中获取前8位数字,并在运行时对输入进行修剪,如下面的示例所示
函数字符串二进制(输入){
变量字符=输入。拆分(“”);
返回字符.map(函数(char){
const binary=char.charCodeAt(0).toString(2)
常量pad=Math.max(8-binary.length,0);
//只是为了确保它是8位长。
返回“0”。重复(pad)+二进制;
}).加入(“”);
}
函数二进制字符串(输入){
让bytesLeft=输入;
让结果=“”;
//检查我们是否还有一些字节
while(bytesleet.length){
//获取第一个数字
常量字节=bytesleeft.substr(0,8);
bytesleet=bytesleet.substr(8);
result+=String.fromCharCode(parseInt(字节,2));
}
返回结果;
}
常量二进制=stringToBinary(“测试”);
log(binaryToString(binary))代码>我刚刚参与了exact项目,下面是从文本转换为二进制以及从二进制转换为文本的函数:
function binaryToTexttConverter(str) {
let wordArray = [];
let message = str.split(" ").map((stack) => {
let numberArray = parseInt(stack, 2);
let letters = String.fromCharCode(numberArray);
wordArray.push(letters);
});
let output = wordArray.join("");
console.log(output);
return output;
}
// binaryToTexttConverter("test binary");
*****************************************************************
function textToBinaryConverter(str) {
let xterCodesArray = [];
let splitted = str.split("");
for (i = 0; i < splitted.length; i++) {
let xterCodes = splitted[i].charCodeAt(splitted[i]);
xterCodesArray.push(xterCodes.toString(2));
}
console.log(xterCodesArray.join(" "));
return xterCodesArray.join(" ");
}
// textToBinaryConverter("test string");
函数binarytotextconverter(str){
让wordArray=[];
let message=str.split(“”).map((堆栈)=>{
设numberArray=parseInt(堆栈,2);
让字母=String.fromCharCode(numberArray);
推送(字母);
});
让output=wordArray.join(“”);
控制台日志(输出);
返回输出;
}
//二进制TotextConverter(“测试二进制”);
*****************************************************************
函数文本到二进制转换器(str){
设xterCodesArray=[];
let splitted=str.split(“”);
对于(i=0;i
Thank you的可能副本!这真的很有帮助。我不知道我需要前导零。那么,您的解决方案希望我创建带空格的二进制字符串吗?不,它只是显示前导零和八个字符的长度。谢谢,这真的很有帮助!我不知道这里需要前导零。当你使用transpiler(如babel)或你不关心IE11时,你也可以使用padStart
就像Nina Scholz的回答一样。