erlang 二进制数据

关于二进制打印结果的分析://TODO 

1.erlang没有字符串类型,存储的是对应整数值,

下面是摘自网上的erlang类型介绍,以备忘。

1).Variable.
Erlang中无变量的说法,一般以未知数定义,以大写字母开头表示,可以通过“=”进行赋值,一旦赋值不可更改,在一般情况下“=”表示模式匹配。
2).Atom.
Erlang中非数字常量一般以原子定义,以小写字母开头,后接数字字母 或者 下划线“_”或者 符号 @ 表示;同时以单引号‘’引起来的字符也是原子,对于‘’内的字符无要求,可以以大写字母开头 如:‘Monday’;对于原子,它的知就是自身,因此输入一个原子,输出还是这个原子。
3).Tuple.
Erlang中对Tuple翻译 元组 序列 两种称呼,以大括号{_,_,_}内部将各个字符以逗号隔开表示。
4).List.
Erlang中,列表以中括号[_,_,_]内部将各个字符以逗号隔开表示。 列表中第一个元素称呼为列表头,剩下的元素称呼为列表尾,通常列表尾还是一个列表,实际上所有处理列表的函数都是从提取列表头开始[H|T],H为列表头,[T]为列表尾,以模式模式匹配的方式来提取数据。
5).String.
Erlang中,以双引号“”表示字符串,实际上Erlang中无字符串,为一整数列表,可以用$表示字符的整数值,$a.实际上为一个整数,表示字符a。
6).占位符“_”。
Erlang中占位符  _  被称呼为匿名变量,表示那些我们不关心的变量,在同一个模式的不同地方  _  所绑定的额值都不同。
7).表达式.
在Erlang中任何可以被求值的东西的都被称呼为表达式,如catch、if、try...catch等都为表达式,而类型记录和模式属性等,这些不能被求值的都不是表达式。
8).%和%%都为Erlang的注释内容。
9).help()查看Erlang编译器的输出功能列表。
 
对于二进制类型,上面没有介绍,对于二进制类型的打印结果来分析下:
 
  二进制数据(binary):在erlang中可以使用一种叫做二进制的数据点结构来存储大量原始数据。相对于列表或者元组,二进制类型更加节省内存,而且运行时系统也对此进行了优化,对二进制数据的输入输出会更高效。
  在书写和打印时,二进制数据以一个整数或者字符序列的形式出现,两端分别用两个小于号和两个大于号括起来。
  这是《erlang程序设计》书中的原话,但对于不同的类型结构转二进制后存储的数据信息没有做适量解释。
1.二进制数据的打印是按字节打印。
2、
  使用list_to_binary(XL),对XL(XL代表一个列表)包含不同的数据类型,来进行数据输出,会看见对应字节信息,不过转为了十进制字串输出形式,包含类型数据,长度,内容。
 
//TODO
 
 
原文地址:https://www.cnblogs.com/moniza/p/3896938.html