如何发挥一个字节的极限,存储大量内容

在当前的硬件发展阶段,存储空间已经是非常廉价的了,普通硬盘都是以T来计量,内存以G来计量,服务器内存16G,64G已经普及,所以我们在开发的时候,很少去考虑数据是否有足够的空间存储。

可以定义成byte,short的字段,我们为了方便,会定义成int,这对业务来讲,并没有什么区别。甚至会定义成varchar,完全不用考虑空间是否有浪费。

但是在某些特殊业务场景,对性能和网络传输有苛刻的要求时,我们需要使用最小的空间存储最多的内容。

业务场景:

一个设备有8个插口,每个插口有一个状态(可用,不可用),一个字节是8位,

假如1号,4号,5号,7号插口可用,2号,3号,6号,8号插口不可用,

那么二进制数据是"10011010",转换成2进制就是154,转成16进制就是9A,那么我们只需要存储9A就可以代表当前这个设备8个插口的状态。

"10011010"也可以每两位表示一个值,每两位转成10进制就是2122,再转成16进制是84A

原文地址:https://www.cnblogs.com/jiwuyf/p/5976643.html