如何将ascii值列表[192]转换为二进制<< 192>>在二郎

时间:2016-10-06 11:20:45

标签: erlang

实施例

6个二郎:list_to_binary([192])

<< “A” >>

我希望输出为 << 192>>

任何人都可以提供帮助

2 个答案:

答案 0 :(得分:1)

这是因为Erlang将字符串表示为整数列表,因此如果要求shell打印整数列表,shell会猜测您是要将其视为数字列表还是字符串。 shell的基础是检查列表是否包含所有可打印字符,因此您可以强制字符串不可打印。在Erlang / OTP R16B及更高版本中,您可以使用函数shell:strings/1在shell中关闭此行为:

Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

local recon loaded
Eshell V8.1  (abort with ^G)
1> erlang:list_to_binary([192]).
<<"À">>
2> shell:strings(false).
true
3> erlang:list_to_binary([192]).
<<192>>
4>

注意:这是所有节点shell的全局选项,因此对于更长的生命节点,最好在完成后将其设置回原始值。

答案 1 :(得分:0)

将[1,2,3,4]等列表转换为&lt;&lt;&lt; 1,2,3,4&gt;&gt;:

lists:foldl(fun(N, Acc) -> << Acc/binary, N >> end, <<>>, [1,2,3,4]).