位操作
目的是让数据变得更紧凑,更小。在网络通信中,数据越小,传输的速度越快
定义二进制型中数据的结构
假设我们想用描述一个16位颜色 RGB(2, 61, 20)
- 使用元组描述这个颜色,然后转成二进制型数据
1> Color1 = term_to_binary({2, 61, 20}). <<131,104,3,97,2,97,61,97,20>> 2> byte_size(Color1 ). 9
- 直接使用二进制型描述这个颜色,可以看出来,数据比使用元组变的小了很多
1> Color2 = <<2,61,20>>. <<2,61,20>> 2> byte_size(Color2). 3
- 定义二进制型数据的结构。假设我们决定给红色通道分配5位,绿色通道分配6位,剩下5位分配给蓝色(让绿色通道多使用以为是因为人眼对绿光更敏感),这样数据变得更小了
1> Red = 2. 2> Green = 61. 3> Blue = 20. 4> Color3 = <<Red:5, Green:6, Blue:5>>. <<23, 180>> 5> byte_size(Color3). 2 %% 提取字节型的数据 6> <<R:5, G:6, B:5>> = Color3. 7> R. 2 8> G. 61 9> B. 20