summaryrefslogtreecommitdiff
path: root/src/hex.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/hex.erl')
-rw-r--r--src/hex.erl14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/hex.erl b/src/hex.erl
new file mode 100644
index 0000000..dcb9349
--- /dev/null
+++ b/src/hex.erl
@@ -0,0 +1,14 @@
+-module(hex).
+-export([bin_to_hexstr/1,hexstr_to_bin/1]).
+
+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]).