我读到过6 位字符编码并想知道 5 位编码是否有用或在某些情况下是否被认为是一种改进。
我想我已经找到了实现该目标的方法,只需编写相关代码即可将文本从 8 位编码/解码为 5 位,反之亦然。
答案1
电传打字机使用的旧式波特码有 5 个数据位。它允许通过电报系统发送和接收文本,并在类似打字机的设备上打印。它最早于 19 世纪 40 年代推出,在 20 世纪 70 年代仍然广泛使用。对于串行通信,添加了 2 个起始位和一个结束位。
5 位代码仅提供 32 种组合。为了支持字母字符以及数字和符号,使用了 2 种模式。字母模式包含字母,而数字模式包含数字和符号。空格、回车符、换行符和切换模式的字符对两种模式都通用。不支持小写字符。
使用 5 位代码是因为它在机械设备中易于实现,并且能够高效利用慢速传输系统。目前它的实用性值得怀疑,但它可能对非常特殊的用途有用。但任何优势都必须仔细权衡其局限性。
答案2
是的,在某些情况下,5 位编码很有用。特别是在受限环境中,想想旧的游戏硬件(例如 NES)或通过网络传输数据。
当字符集较小时,字符串可以编码为每字符 5 位而不是每字符 8 位的比特流。这样可以减少数据大小。您使用固定位长编码来压缩数据。当然,由于需要“编码/解码”,所以您要用“压缩数据”换取“更快的处理速度”。
使用 5 位可使数据具有 0-31 范围内的值($00-$1F)。您只能表示 32 个项目。通过使用分页/模式,您可以扩展支持的项目数量。例如,考虑 3 页,其中包含 32 个字符 + 32 个字符 + 32 个控制命令。
如上所述,这是一种固定位长编码。后续主题是可变位长编码,然后是霍夫曼编码(通过进行项目频率/出现分析来优化编码)。