有没有什么算法可以将 16bit 压缩到 10bit 来存储?

2019-08-21 11:42:30 +08:00
 alcoholpad

业务场景:将 ip 地址,如 10.21.221.20 ,后两段( 221.20 )截取下来转成二进制。但是只能有 10bit 的存储空间可以存储,可行吗?有什么方式可以转换?保证唯一。避免如 22120 和 22121 转换后 10bit 是一样的。

5672 次点击
所在节点    程序员
53 条回复
douglas1997
2019-08-21 15:47:24 +08:00
10bit 如果结构上不同的话可能可以吧,但其实本质上还是增大了信息空间
qwerthhusn
2019-08-21 15:48:02 +08:00
16 位有 65536 个组合
10 位有 1024 个组合

要用这 1024 个组合映射 65536 个组合。。。。。
xiaopang132
2019-08-21 16:04:05 +08:00
@vjnjc 实际就是,没有办法..当然,在量子计算机面世的那一天就有办法了!
hahiru
2019-08-21 17:11:52 +08:00
11111111🔪11111111 中间一刀切
8 个 8 个存还不用 10bit 呢。
最后再拼接呗。
CrazyRundong
2019-08-21 17:13:09 +08:00
没有,信息熵是固有特性,压不了的
wssy
2019-08-21 18:50:27 +08:00
结合你的业务场景分析下,如果还有一些可以预知的信息或许可以利用上去
msg7086
2019-08-22 04:44:08 +08:00
@loading 或者叫鸽笼原理。
xuanbg
2019-08-22 08:36:44 +08:00
单个 16bit 信息没办法用 10bit 存储。除非你的 IP 有 6bit 都是一样一样的
shyrock
2019-08-22 09:41:21 +08:00
这问题适合发在知乎,而不是 v2 程序员板块。。。
zifangsky
2019-08-22 09:51:30 +08:00
@lights #37 呃,你可以再好好想想这个问题……
VictorJing94
2019-08-22 10:44:26 +08:00
做不到好像,,,也许可以试着按规律分开存放...最后用的时候拼接一下
hu8245
2019-08-22 10:47:04 +08:00
压缩感知。不保证 100% OK
zhzbql
2019-08-22 11:57:30 +08:00
@lights 什么进制放到计算机底层存储都是 0 和 1,2 进制。占用的空间不会更小,只会更大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/593783

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX