【发布时间】:2018-05-22 14:11:51
【问题描述】:
我有一组整数,每个都有一个特定的范围:
foo = [1, 5]
bar = [1, 10]
baz = [1, 200]
我可以根据每个数字可以具有的不同状态的数量来计算分别存储每个数字需要多少位:
foo = 5 possible states ~ 3 bits
bar = 10 possible states ~ 4 bits
baz = 200 possible states ~ 8 bits
这给了我总共 15 位。但是每个数字都有一个未使用的范围,导致空间浪费。我可以通过计算所有组合数字的所有可能状态来计算整个集合所需的位:
5 * 10 * 200 = 10000 possible states ~ 14 bits
这可以节省我一大笔钱!
这就是我的问题所在:使用这种布局加载和存储数字的最佳方式是什么?
【问题讨论】:
标签: algorithm integer compression bit-manipulation