我的输入包含五个字符的大写英文字母,例如ABCDE
,我需要将其转换为两个字符的唯一ASCII输出。
例如ABCDE
和ZZZZZ
都应提供两个不同的输出
我已经从ABCDE
转换为十六进制,从而得到4142434445
,但是我可以从中获得所需的两个字符的输出值吗?
示例:
INPUT1 = ABCDE
转换为十六进制= 4142434445
INPUT2 = 4142434445
输出= ??任何2个ASCII字符
INPUT1的其他示例=
BIRAL
BRMAL
KLAAX
答案 0 :(得分:6)
所以您要以5位数的26开头的数字,并想将其压缩为以n为底的2位数方案?
所有可能的1-5位以26为基数的数字为您提供26 ^ 5 = 11,881,376的数字空间。
因此,您需要最小值n,其中n ^ 2> = 11,881,376。
哪个给你3446。
现在,您可以自行决定在UTF中的某个位置找到合适的字形块,在其中可以可靠地阻止3446个单独的字符用作新的基础/字母。并构造一个从5个字符为基数的26 ABCDE类型号到2个字符为基数3446的wierd-glyph编号的映射。祝你好运。
因为只有128个可打印字符,所以ASCII的变化不够多。将自己限制为2个字符的ASCII码意味着您只能寻址16384的数字空间。