tengo datos hexadecimales que tengo que convertir en 64 datos decimales firmados ... así que pensé en seguir este paso. 1.hexadecimal a binario, en lugar de escribir mi propia conversión de código i estoy usando código dado en este enlace http://necrobious.blogspot.com/2008/03/binary-to-hex-string-back-to-binary-in.htmlhexadecimal a 64 decimal firmado
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 a decimal, cómo lograr esta parte.?
o cualquier otra forma de lograr la hexdecimal -> 64 Firmado datos decimales
Gracias de antemano
gracias por sus answer..its muy buena explicación de lo que need..but tengo una duda más, ya que para este valor hexadecimal 3fc2d175e1028b9a, si el código escrito en php im su 4594464874087746458 dando como valor decimal 64, pero cuando estoy haciendo lo mismo que has declarado hex_to_bin (Str) -><< << (erlang: list_to_integer ([H], 16)): 4 >> || H <- Str >>. está dando << 63,194,209,117,225,2,139,154 >>. Así que cualquier explicación para esto ... por favor dime qué es lo que está mal en esto. – Abhimanyu
<> = hex_to_bin ("3fc2d175e1028b9a"), I =: = 4594464874087746458. - Solo necesita convertir el binario a un entero en erlang (la notación << numbers >> indica un binario). –
archaelus