【发布时间】:2021-01-08 07:06:54
【问题描述】:
假设我仅限于使用 32 位无符号整数来表示字符串。显然,我可以使用单独的 u8 数字并分配足够的单独值来描述一个短字符串,但是说计算和时间并不重要,这是出于我的好奇心,不一定是为了实际使用。
我观察到 32 位数字与 4 个严格的 u8 字符大小相同。在十进制中,任何字符编码中的 4 个可以被 2 位十进制索引为它们的十进制等效值,而 5 个 ECMA-1 字符可以适合相同的位大小。
假设我想要可打印字符的范围,使用映射的 ASCII 表,我减去 32 以将可打印字符转换为 2 个十进制数字(32 到 126 变成 0 到 94)。假设一个类似于|c,i|c-31*(10^((i+1)*2))的映射函数,其中c是ASCII值,i是位置:45769502。在ASCII值中作为u8数组[66, 97, 116, 33] 或字符串“Bat!”
显然这在计算上效率不高。我不一定要为此拍摄?这里只是纯粹的好奇。
假设计算是任意的,所以即使完全荒谬,我如何将更长的字符串编码为 32 位无符号整数?
【问题讨论】:
标签: algorithm encoding compression