tôi có dữ liệu thập lục phân tôi phải chuyển đổi thành 64 dữ liệu thập phân đã ký .. vì vậy tôi nghĩ có bước follwoing như thế này. 1.hexadecimal để nhị phân, thay vì viết chuyển đổi mã riêng của tôi, tôi đang sử dụng mã được đưa ra trong liên kết này http://necrobious.blogspot.com/2008/03/binary-to-hex-string-back-to-binary-in.htmlhex đến 64 Ký số thập phân
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 sang thập phân, làm thế nào để đạt được phần này.?
hoặc bất kỳ cách nào khác để đạt được hexdecimal -> 64 ký dữ liệu Decimal
thanx trước
thanx cho answer..its của bạn Giải thích rất tốt về những gì tôi need..but tôi có một nghi ngờ hơn, vì cho 3fc2d175e1028b9a giá trị thập lục phân này, nếu im viết code trong php cho nó 4594464874087746458 như 64 giá trị thập phân nhưng khi im làm điều tương tự như bạn đã nói hex_to_bin (Str) -><< << (erlang: list_to_integer ([H], 16)): 4 >> || H <- Str >>. nó đang cho << 63,194,209,117,225,2,139,154 >> vì vậy bất kỳ lời giải thích cho điều này .. xin vui lòng cho tôi biết whats sai về điều này. – Abhimanyu
<> = hex_to_bin ("3fc2d175e1028b9a"), I =: = 4594464874087746458. - Bạn chỉ cần chuyển đổi số nhị phân thành số nguyên trong erlang (<< numbers >> ký hiệu cho biết nhị phân). –
archaelus