0

是否有使用 5 位作为一组来编码二进制数据的编码?

AZ 包含 26 个字符,0-9 包含 10 个字符。总共有 36 个字符足以进行 5 位编码(仅 32 种组合)。

为什么我们不使用 5 位编码而不是八进制或十六进制?

4

3 回答 3

1

是的。它是Base32。也许这个名字会是Triacontakaidecimal但它太长而且很难记住,所以人们简单地称它为base 32。同样,6 位组也有Base64

Base32 在使用中比十六进制和 base64 少得多,因为它与 base64 相比浪费了很多空间,并且与十六进制相比使用了奇数位(可以被 8、16、32 或 64 整除)。6 也是偶数,因此在二进制计算机上比 5 好

于 2013-08-10T12:47:03.703 回答
1

正如@S.Lott 的评论中提到的,当紧凑性很重要时,base64(6 位)通常用于将二进制数据编码为文本。

出于调试目的(例如十六进制转储),我们使用十六进制,因为一个字节的大小可以被 4 位整除,因此每个字节都有一个唯一的 2 位十六进制表示,无论它周围有什么其他字节。这使得在查看十六进制转储时很容易“看到”各个字节,并且在 8 位二进制和 2 位十六进制之间进行心理转换也相对容易。(在 base64 中,字节和编码字符之间没有 1:1 的对应关系;同一个字节可以根据其位置和其他相邻字节的值产生不同的字符。)

于 2011-04-27T03:10:11.473 回答
0

当然,为什么不:

Welcome to Clozure Common Lisp Version 1.7-dev-r14614M-trunk  (DarwinX8664)!
? (let ((*print-base* 32)) (print 1234567))
15LK7 
1234567
? (let ((*print-base* 32)) (print (expt 45 19)))
KAD5A5KM53ADJVMPNTHPL 
25765451768359987049102783203125
? 
于 2011-04-27T03:02:59.183 回答