下你所需,载你所想!
汇集开发技术源码资料

lzss压缩解压

:3.459KB :1 :2021-09-29 12:56:36

部分简介

lzss压缩解压例子。
.如果 (取字节集左边 (欲解压的数据, 4) = { 85, 170, 90, 165 })
addr = 13
len = 欲解压的数据 [9] × 16777216 + 欲解压的数据 [10] × 65536 + 欲解压的数据 [11] × 256 + 欲解压的数据 [12] + 12
.否则
addr = 1
len = 取字节集长度 (欲解压的数据)
.如果结束
buf = 取空白字节集 (4112)
r = 4080
.判断循环首 (addr ≤ len)
.如果真 (位与 (tmp, 256) = 0)
c = 欲解压的数据 [addr]
addr = addr + 1
tmp = 位或 (c, 65280)
.如果真结束
.如果 (位与 (tmp, 1) > 0)
c = 欲解压的数据 [addr]
addr = addr + 1
r = r + 1 ' -----------------------------
buf [r] = c ' -----------------------------
加入成员 (zj, 位与 (c, 255))
r = 位与 (r, 4095)
.否则
i = 位或 (欲解压的数据 [addr] × 256, 欲解压的数据 [addr + 1])
.计次循环首 (位与 (i, 61440) \ 4096 + 3, )
c = buf [位与 (r - i, 4095) + 1]
加入成员 (zj, 位与 (c, 255))
r = r + 1 ' -----------------------------
buf [r] = c ' -----------------------------
r = 位与 (r, 4095)
.计次循环尾 ()
addr = addr + 2

.如果结束
tmp = tmp \ 2
.判断循环尾 ()

热门推荐

相关文章