Mam dane szesnastkowe muszę przekonwertować na 64 dane dziesiętne z podpisem. Myślę, że mam następujący krok w ten sposób. 1.hexadecimal do binarnego, zamiast pisać własne konwersję kodu I m przy użyciu kodu podanego w tym linkiem http://necrobious.blogspot.com/2008/03/binary-to-hex-string-back-to-binary-in.htmlhex do 64 Podpisany dziesiętny
bin_to_hexstr(Bin) ->
lists:flatten([io_lib:format("~2.16.0B", [X]) ||
X <- binary_to_list(Bin)]).
hexstr_to_bin(S) ->
hexstr_to_bin(S, []).
hexstr_to_bin([], Acc) ->
list_to_binary(lists:reverse(Acc));
hexstr_to_bin([X,Y|T], Acc) ->
{ok, [V], []} = io_lib:fread("~16u", [X,Y]),
hexstr_to_bin(T, [V | Acc]).
2.binary na dziesiętne, jak osiągnąć tę część.?
lub jakiś inny sposób, aby osiągnąć hexdecimal -> 64 Podpisane dane dziesiętne
thanx z góry
thanx dla answer..its bardzo dobry wyjaśnieniu co ja need..but mam jeszcze jedną wątpliwość, ponieważ do tej wartości szesnastkowej 3fc2d175e1028b9a, jeśli im pisanie kodu w php jego dając 4594464874087746458 jako 64 wartość dziesiętną ale kiedy im robię to samo, co powiedziałeś hex_to_bin (Str) -><< << (erlang: list_to_integer ([H], 16)): 4 >> || H <- Str >>. to daje << 63,194,209,117,225,2,139,154 >>. Więc jakiekolwiek wyjaśnienie tego .. proszę mi powiedzieć co jest nie tak w tym. – Abhimanyu
<> = hex_to_bin ("3fc2d175e1028b9a"), I =: = 4594464874087746458. - Musisz tylko przekonwertować plik binarny na liczbę całkowitą w erlang (notacja << numbers >> oznacza plik binarny). –
archaelus