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

Encoding 3位编码=八进制;4位编码=十六进制;5位编码=?,encoding,hex,base,octal,base32,Encoding,Hex,Base,Octal,Base32,是否有一种将5位作为一个组来编码二进制数据的编码方法 A-Z包含26个字符,0-9包含10个字符。总共有36个字符足以进行5位编码(仅32种组合) 为什么我们不使用5位编码而不是八进制或十六进制?当然,为什么不: Welcome to Clozure Common Lisp Version 1.7-dev-r14614M-trunk (DarwinX8664)! ? (let ((*print-base* 32)) (print 1234567)) 15LK7 1234567 ? (let

是否有一种将5位作为一个组来编码二进制数据的编码方法

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

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

当然,为什么不:

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
? 

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

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

是。是的。也许它的名字应该是Triacontakaidecimal,但是它太长了,很难记住,所以人们就叫它base 32。同样,对于6位的组也有


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

,因为我们使用基数64(6位)。这比5比特酷多了,谢谢你。我知道他们没有编码,但我忘了他们的名字P