打印
[STM32L1]

如何快速将8位ASCII压缩成6位ASCII?

[复制链接]
1998|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MOn51|  楼主 | 2016-5-24 16:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有N个字符(ascii,无小写字母),现在要快速压缩成6位,减少字节占用。有什么快速的算法?N的个数是65536 以上。
沙发
cool_coder| | 2016-5-24 23:06 | 只看该作者
六位正好对应一个64项的表。最简单的实现方法就是做个映射表,作为编码表使用。

使用特权

评论回复
板凳
MOn51|  楼主 | 2016-5-25 09:13 | 只看该作者
cool_coder 发表于 2016-5-24 23:06
六位正好对应一个64项的表。最简单的实现方法就是做个映射表,作为编码表使用。 ...

愿闻其详。

使用特权

评论回复
地板
MOn51|  楼主 | 2016-5-25 10:33 | 只看该作者

目的不是编码而是压缩。4个8位字节的ASCII,可以压缩到3个字节上存储。如何快速压缩?最后如何快速还原?

使用特权

评论回复
5
lxyppc| | 2016-5-25 10:49 | 只看该作者
用lzo算法压缩

具体如何实现 google lzo 即可

使用特权

评论回复
6
泰山特曲123| | 2016-5-25 12:36 | 只看该作者
如果你这些字符的取值小于64可以采用2楼的办法。大于64就要研究这些字符有没有什么规律

使用特权

评论回复
7
cool_coder| | 2016-5-25 13:40 | 只看该作者
MOn51 发表于 2016-5-25 10:33
目的不是编码而是压缩。4个8位字节的ASCII,可以压缩到3个字节上存储。如何快速压缩?最后如何快速还原? ...

我提供的是8-bit到6-bit的转换方法,有了6-bit码,剩下的事就是如何存储了,4个6-bit码拼在一起就是24-bit,刚好3-byte。

使用特权

评论回复
8
secretuniverse| | 2016-5-25 14:47 | 只看该作者
这个是不是得用到压缩算法?

使用特权

评论回复
9
oayzw| | 2016-5-25 15:22 | 只看该作者
请问楼主这个是要用来解决什么问题?

使用特权

评论回复
10
yklstudent| | 2016-5-25 15:28 | 只看该作者
oayzw 发表于 2016-5-25 15:22
请问楼主这个是要用来解决什么问题?

明显压缩空间的

使用特权

评论回复
11
MOn51|  楼主 | 2016-5-26 11:45 | 只看该作者
已经做好了。A-Z的ASC,去掉了D6,ASCII值自动变成1-26了,不会打架。恢复时,判断让D6=1就可以了。

使用特权

评论回复
12
MOn51|  楼主 | 2016-5-26 14:56 | 只看该作者
cool_coder 发表于 2016-5-25 13:40
我提供的是8-bit到6-bit的转换方法,有了6-bit码,剩下的事就是如何存储了,4个6-bit码拼在一起就是24-bi ...

我的本意就是关心如何快速拼接,和解压!

使用特权

评论回复
13
junjieb| | 2019-3-11 12:00 | 只看该作者
4个8位字节的ASCII,可以压缩到3个字节,能发一下代码给我参考一下吗?

使用特权

评论回复
14
huzi2099| | 2019-3-11 14:09 | 只看该作者
几个字节还压缩,有什么意义呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

472

帖子

7

粉丝