У меня есть шестнадцатеричные данные. Мне нужно преобразовать в 64 подписи десятичных данных. Так что я думал, что следующий шаг подобен этому. 1.hexadecimal в двоичное, вместо того, чтобы писать собственную перекодировку я использую код, указанный в ссылке http://necrobious.blogspot.com/2008/03/binary-to-hex-string-back-to-binary-in.htmlhex to 64 Signed Decimal
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 в десятичной, , как достичь этой части.?
или любой другой способ достижения hexdecimal -> 64 десятичных данные
спасибо заранее
спасибо за ваши answer..its очень хорошо Explaination, что я need..but у меня есть еще одно сомнения, так как для этого шестнадцатеричного значения 3fc2d175e1028b9a, если им написание кода в PHP его подача 4594464874087746458 как 64 десятичное значения, но когда я делаю то же самое, что вы указали hex_to_bin (Str) -><< << (erlang: list_to_integer ([H], 16)): 4 >> || H <- Str >>. он дает << 63,194,209,117,225,2,139,154 >>, поэтому любое объяснение этого. Пожалуйста, скажите мне, что случилось с этим. – Abhimanyu
<> = hex_to_bin ("3fc2d175e1028b9a"), I =: = 4594464874087746458. - Вам просто нужно преобразовать двоичный код в целое число в erlang (обозначение << numbers >> обозначает двоичный файл). –
archaelus