Permalink
Browse files

typo

  • Loading branch information...
linhualai committed Nov 27, 2013
1 parent 894e2cc commit 7f69e5b2a1244989246bdf1a9a443cf68d809b28
Showing with 1 addition and 1 deletion.
  1. +1 −1 provider/posts/simple_lz_compress.md
@@ -29,7 +29,7 @@ Postgres 的压缩采用的是一个极简单的 lz 字典压缩算法。从解
dp= ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD
sp = [oxf0,0x41,0x42,0x43,0x44,0x01,0x00,0x05,0x00,0x09,0x00,0x0d,0x00,0x0e] 这样的一个压缩串能解压成什么呢?首先,先读一个 control byte,在这个例子里面就是 0xf0,也就是二进制的 11110000。从最低位开始看:
sp = [oxf0,0x41,0x42,0x43,0x44,0x01,0x00,0x05,0x00,0x0d,0x00,0x0f,0x00,0x0e] 这样的一个压缩串能解压成什么呢?首先,先读一个 control byte,在这个例子里面就是 0xf0,也就是二进制的 11110000。从最低位开始看:
* 每看到一个 0 bit,就将 sp 的下一个字节原样写到结果 dp 里。
* 每看到一个 1 bit,就再读两个字节 byte1 和 byte2, len = [byte1 的低4位] + 3,off = [byte1 的高4位] * 256 + [byte2]。如果 len == 18, 那么再读一个字节 byte3,len += byte3。然后从 dp 的末尾往前 off 个字节拷贝 len 个字节到 dp 里。

0 comments on commit 7f69e5b

Please sign in to comment.