erlang开发笔记

原创

Frank.Liu 2018-01-17
erlang积累分享

DEVELOP NOTE:

二进制型日期转换

把<<"2017-12-14 14:06:23">>二进制 转换成 20171214140623

  • binary_to_integer(<<<> || <> <= <<"2017-12-14 14:59:23">>, not lists:member(LX,[$-,$ ,$:])>>).

erlang用 | 列表(管道)操作符来分隔头和尾(列表的头部和尾部),表达式: [Head|Tail]。头是一个元素,尾是列表的其余的元素。

列表框中加 | ,能够把字符型的转化成ascii码

  • 1>A = "1".
  • 2>[2|A].
  • [2,49]

erlang中的ip地址转化

erlang中没有内置的函数、方法,要自己写算法:

erlang中的mac地址转化

写算法:

  • 注:
  • io_lib:format("~.16B~.16B~.16B~.16B~.16B~.16B", L),         %%是把L中的数据转化成16进制的进行格式化输出
  • ~.16B         %%输出16进制的,如0C
  • “0”++C %%转化成16进制的变量C,如果不足两位就前面补0凑够2位
  • 例如:string:join(["1C","2E","0D"], ":"). 结果就是:"1C:2E:0D"

转化成ascii码中对应字符,比如十六进制的字符串“37303032363232303030”转化成字符“7002622000”

erlang中把16进制的字符串转化成字符:

  • hex2ints(L) -> hex2ints(L, []).
  • hex2ints([], Acc) ->
  •         lists:reverse(Acc);
  • hex2ints([A, B|T], Acc) ->
  •         hex2ints(T, [list_to_integer([A,B], 16) | Acc]).
  • 测试:
  • 1> L = "37303032363232303030".
  • "37303032363232303030"
  • 2> myhex:hex2ints(L).
  • "7002622000"

【原创】版权所有,可自由转载、引用,但需署名作者(Frank.Liu)且注明文章出处(https://codinglfq.github.io)。如果对你有用,请随意打赏:

梦想基金