首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

erlang 位语言演算 备忘

2012-10-12 
erlang 位语言运算 备忘整数型数据在写入binary时默认占1bit,所以要写入int,big int 一定要指定size。实例:

erlang 位语言运算 备忘

整数型数据在写入binary时默认占1bit,所以要写入int,big int 一定要指定size。

实例:

Number = 6000.

<<Number>> =:= <<"p">> =:= <<112>> =:= <<6000>>

这几种结果竟然是相同的。因为<<Number:32>> =:= <<0,0,23,112>>,<<Number:1>>的运算结果就是把最后一位<<112>>写入。

?

正确意图的写法:

<<Number:32/integer>> or <<Number:32/big-unsigned-integer>> or 长整数:<<Number:64/integer>>

?

?让我不解的是在整数运算里:32指的是bit,但是在其他类型时,size指的是byte,例如:

Bin = <<"aaa">>.??????? Num = 6000.

B =<<Bin:3/binary>>???N=<<Num:32/integer>>.

3= size(B).???? ????????????? 4 = size(N).

?

呵呵,看似有些相悖,但是仔细按照binary 数据来考虑,又很合理。数值在binary中就是按照位来排列的,而String等类型是按照byte来排列的。

热点排行