2011-02-04 16 views
5

私は、MACアドレスのネットワーク表現に基づいてerlangビットストリングを持っています。 <<255,0,0,0,0,1>>であり、整数に変換したいと考えています。この変換について最も効果的な方法は何ですか?整数変換のErlangビットストリング

ありがとう、 Matt。

答えて

13

はそれを読む:

2> <<N:48/integer>> = <<255,0,0,0,0,1>>. 
<<255,0,0,0,0,1>> 
3> N. 
280375465082881 

それはあなたがしたい番号と一致していませんが。おそらく浮動小数点の丸め誤差のためでしょうか?

1

1> binary_to_list(< < 255,0,0,0,0 >>)。

[255,0,0,0,0]

たとえば、

+0

多分私は明確ではなかったと思います。私は数字のリストではなく、単一の48ビットの数字に変換したいと思います。上記の場合、答えは280375481860097 – mpm

14

あなたがパックどのくらいのデータを選択することができます/ :Size-unit:Nオプション使用して試合:

1> <<X:6/integer-unit:8>> = <<255,0,0,0,0,1>>. 
<<255,0,0,0,0,1>> 
2> X. 
280375465082881 

以上の動的:これらの変数のサイズを使用して

3> Bin = <<255,0,0,0,0,1>>.     
<<255,0,0,0,0,1>> 
4> Size = size(Bin). 
6 
5> <<Int:(Size)/integer-unit:8>> = Bin.  
<<255,0,0,0,0,1>> 
6> Int. 
280375465082881 

は、あなたはかなり解凍することができますあなたが望むものなら、なんでも。

+2

です。この男に耳を傾けないでください。彼は耳障りな助言をします:P –

+0

偉大な答えですが、私はあなたの死の敵であると推測することができます。 1分で – mpm

+0

この恐ろしいアドバイスに投票するつもりです – keymone

関連する問題