3位编码=八进制; 4位编码=十六进制; 5位编码=?

时间:2011-04-27 02:48:12

标签: encoding hex base octal base32

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

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

为什么我们不使用5位编码而不是Octal或Hexadecimal?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

是。这是Base32。也许名字将是Triacontakaidecimal。但它在使用中比十六进制和Base64

更不常见

答案 2 :(得分: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
?