2011-02-04 4 views

Odpowiedz

13

Przeczytaj go:

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

Choć nie zgadza się żądany numer. Być może z powodu błędu zaokrąglania punktu zmiennoprzecinkowego?

1

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

[255,0,0,0,0,1]

Na przykład.

+0

Myślę, że być może nie było jasne - chcę przekonwertować na pojedynczy 48-bitowy numer, a nie listę liczb. W powyższym przykładzie chcę, aby odpowiedź brzmiała: 280375481860097 – mpm

14

Można wybrać, ile danych spakować/mecz używając :Size i -unit:N opcje:

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

lub więcej Dynamicznie

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 

Używając tych zmiennych rozmiarach, można rozpakować dość dużo cokolwiek chcesz.

+2

Nie słuchaj tego gościa, on daje STRAPNE RADY: P –

+0

Świetna odpowiedź, ale DAJEMY ODPOWIEDZI NA KRAŃCĘ, o których mogę tylko przypuszczać, że jesteś śmiertelnym wrogiem, pobili cię to o 1 minutę. – mpm

+0

zagłosuje na tę straszną radę, aby wyrównać ocenę: – keymone