2016-08-15 12 views
-2

この機能を元に戻す方法は?それは、テキストから80ビットのバイナリコードを作成し、私はそれをインターネット上で見つけましたが、その操作を逆にしてテキストを復元するバイナリコードを作成する方法はわかりません。ASCIIからバイナリへの変換

var ascii2bin = function(ascii) 
{ 
    var bin = "00000000000000000000000000000000000000000000000000000000000000000000000000000000"; 
    for (var i = 0; i < ascii.length; i++) 
    { 
     var code = ascii.charCodeAt(i); 
     bin += ('00000000' + code.toString(2)).slice(-8); 
    } 
    return bin.slice(-10 * 8).split('').reverse(); 
} 
+0

[ 'のparseInt(...、2)'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt)バイナリオクテットをcharコードの値として読み込むcharコード値を文字に変換するには、['String.fromCharCode'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode)を選択します。 – apsillers

答えて

0

あなたの関数は(最後の行で-10を参照)、情報の価値は10個の文字に結果を切り捨て、その長さ以下のように入力のみを逆にすることができます。

var bin2ascii = function(bin) { 
    return bin.reverse().join('').match(/.{8}/g).map(
     x => String.fromCharCode(parseInt(x, 2)) 
    ).join(''); 
} 

テスト:

bin2ascii(ascii2bin('')); // '' 
bin2ascii(ascii2bin('foo bar')); // 'foo bar' 
bin2ascii(ascii2bin('Test 123')); // 'Test 123' 
bin2ascii(ascii2bin('This is a long string')); // 'ong string' 
あなたはおそらく探している
+0

これは完璧に動作します、ありがとうございます:) – Inder