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



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

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

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

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

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

是。Base32。也许它的名字应该是Triacontakaidecimal,但是它太长了,很难记住,所以人们就叫它以32为底。同样,Base64也适用于6位组

Base32在使用上比十六进制和base64少得多,因为与base64相比,它浪费了太多的空间,并且与十六进制相比,它使用了奇数位(可以被8、16、32或64整除)。6也是偶数,因此在二进制计算机上优于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
? 

最新更新