在线摩斯电码转换,支持中文的摩斯密码转换

在线DEMO:https://oktools.net/morse

摩斯电码和Unicode映射

const standard = {
    'A': '01',
    'B': '1000',
    'C': '1010',
    'D': '100',
    'E': '0',
    'F': '0010',
    'G': '110',
    'H': '0000',
    'I': '00',
    'J': '0111',
    'K': '101',
    'L': '0100',
    'M': '11',
    'N': '10',
    'O': '111',
    'P': '0110',
    'Q': '1101',
    'R': '010',
    'S': '000',
    'T': '1',
    'U': '001',
    'V': '0001',
    'W': '011',
    'X': '1001',
    'Y': '1011',
    'Z': '1100',
    '0': '11111',
    '1': '01111',
    '2': '00111',
    '3': '00011',
    '4': '00001',
    '5': '00000',
    '6': '10000',
    '7': '11000',
    '8': '11100',
    '9': '11110',
    '.': '010101',
    ',': '110011',
    '?': '001100',
    '\'': '011110',
    '!': '101011',
    '/': '10010',
    '(': '10110',
    ')': '101101',
    '&': '01000',
    ':': '111000',
    ';': '101010',
    '=': '10001',
    '+': '01010',
    '-': '100001',
    '_': '001101',
    '"': '010010',
    '$': '0001001',
    '@': '011010',
};
const option = ['/', '.', '-'];
let standardReverse = {};
for (let key in standard) {
    standardReverse[standard[key]] = key;
}

Unicode转Morse

function unicodeHexMorse(ch) {
    let r = [];
    for (let i = 0; i < ch.length; i++)
        r[i] = ('00' + ch.charCodeAt(i).toString(16)).slice(-4);
    r = r.join('');
    r = parseInt(r, 16).toString(2);
    return r;
}

morse转Unicode

function morseHexUnicode(mor) {
    mor = parseInt(mor, 2);
    if (isNaN(mor)) return '';
    return unescape('%u' + mor.toString(16));
}

效果图:
image

首先,我们需要将给定的字符串“tim-3.1415926”分成可处理的单元。由于摩斯密码是为英文字母和数字设计的,我们可以将其转换摩斯密码,然后再将摩斯密码转换回文字。摩斯密码用一系列的点(.)和短划(-)来表示不同的字符。每个字母或数字由不同的点和短划组合来代表。 下面是一个简化的转换过程,每个字母或数字转换摩斯密码的例子: 字母和数字的摩斯密码表: - A: .- N: -. - B: -... O: --- - C: -.-. P: .--. - D: -.. Q: --.- - E: . R: .-. - F: ..-. S: ... - G: --. T: - - H: .... U: ..- - I: .. V: ...- - J: .--- W: .-- - K: -.- X: -..- - L: .-.. Y: -.-- - M: -- Z: --.. - 数字0: ----- - 数字1: .---- - 数字2: ..--- - 数字3: ...-- - 数字4: ....- - 数字5: ..... - 数字6: -.... - 数字7: --... - 数字8: ---.. - 数字9: ----. 因此,给定的字符串“tim-3.1415926”中的每个字符分别对应的摩斯密码如下: - T: - - I: .. - M: -- - 数字3: ... - 数字1: .---- - 数字4: ....- - 数字1: .---- - 数字5: ..... - 数字9: ----. - 数字2: ..--- - 数字6: -.... 然后,我们可以将这些摩斯密码串连起来,得到一个摩斯密码序列。 最后,将这个摩斯密码序列再转换回文字,可以得到“tim-3.1415926”。 需要注意的是,上述过程是理想化的转换过程。实际中,将摩斯密码转换回文字通常需要一个清晰的分隔符来区分每个字符的摩斯密码表示,以避免混淆。在这个例子中,我们假设每个字符的摩斯密码之间用空格分隔,而字母和数字之间用斜杠分隔。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值