【问题标题】:ASCII to binary functionASCII 转二进制函数
【发布时间】:2016-12-21 20:28:30
【问题描述】:

如何反转这个函数?它从文本中创建了一个 80 位的二进制代码,我在互联网上找到了它,但不知道如何反转操作并使生成的二进制代码恢复文本。

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();
}

【问题讨论】:

标签: javascript binary ascii


【解决方案1】:

您的函数将结果截断为十个字符的信息(请参阅最后一行中的 -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'

【讨论】:

    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 2012-11-14
    • 2014-08-16
    • 2012-03-30
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多