我真的很想看到一个数值示例,说明如何手动进行放气压缩。
以下非常短的文本“abc”已使用 deflate 算法压缩,输出“eJxLTEoGAAJNASc =”,二进制表示法为:
01100101 01001010 01111000 01001100 01010100 01000101 01101111 01000111 01000001 01000001 01001010 01001110 01000001 01010011 01100011 00111101
任何人都可以帮助显示位计数步骤如何工作,手工,这将解码 0 和 1 的字符串作为原始字符串“abc”,请?
非常感谢。
您的二进制转储是您提供的 Base64 字符串,而不是实际的二进制压缩数据。
78 9c 4b 4c 4a 06 00 02 4d 01 27
或二进制:
01111000 10011100 01001011 01001100 01001010 00000110 00000000 00000010 01001101 00000001 00100111
您可以使用infgen来反汇编 deflate 流。您的数据实际上是 deflate 流周围的 zlib 包装器:
! infgen 2.5 output
!
zlib
!
last ! 1
fixed ! 01
literal 'a ! 10010001
literal 'b ! 10010010
literal 'c ! 10010011
end ! 0000000
! 000000
!
adler
deflate 格式记录在RFC 1951中,zlib 包装器记录在RFC 1950中。
前两个字节是 zlib 头。然后下一个字节的低位是 这是一个非常无聊的例子,因为它太短了。你需要一个更长的例子来使用动态块,这样你就可以探索一个动态块头的全部荣耀。011
,其中低1
表示这是最后一个块,而上面的01
表示这是一个固定块。请注意,这些位是从最低有效位读取到最高有效位的(自下而上)。deflate 数据
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(68条)