第7章 二进制型与位语法

1.二进制型:以双小于号与双大于号之间的一列整数或字符串,若二进制型里的位数不是8的整数倍,那么就称为位串

  • <<5,10,20>> <<"hello">>

2.二进制型操作

  • list_to_binary(L) ->B ,将列表L转换为二进制文件B
  • split_binary(Bin,Pos) ->{Bin1,Bin2} 在Pos处将bin一分为二
  • term_to_binary(Term) ->Bin 将任意Erlang数据类型转换为一个二进制型
  • binary_to_term(Bin) -> Term
  • byte_size(Bin) -> Size 返回二进制里的字节数

3.位语法:可以灵活的为各变量分配所占的位数.

  • M= <<X:3,Y:7,Z:6>> 所占位数为16,所以M是一个binary类型
  • M= <<X:2,Y:7,Z:6>> 所占为15,非8的整数倍,所以M是一个bitstring类型.
  • 以RGB颜色打包为例:
  • R=2. Green=61. Blue=20. 则Men= <<Red:5,Green:6,Blue:5>> result: <<23,180>>

4.位语法表达式(P83)

5.位串:处理位级数据

  • B2= <<1:17>>.
  • result : <<0,0,1:1>>
  • 意味着B2是一个有2个字节和一个1:1的位串组合成.

猜你喜欢

转载自blog.csdn.net/qq_34755443/article/details/84315933