这是我的功能,当我调用my_conv(“2312144”,10,10)时,它给了我“错误的参数”错误
my_conv(S, Start, End) ->
Res = <<Start:8, End:8, S:1024>>.
答案 0 :(得分:5)
如果没有转换,则不能在二进制表达式中使用字符串。您需要使用list_to_binary(S)
将字符串转换为二进制文件。
我建议使用以下表达式:
my_conv(S, Start, End) ->
list_to_binary(<<Start:8, End:8>>, S]).
(请注意list_to_binary/1
实际上接受深IO列表而不仅仅是纯字符串。
如果您打算将二进制文件填充到1024字节(或1040包括换行符),则可以在以后执行此操作:
my_conv(S, Start, End) ->
pad(1040, list_to_binary(<<Start:8, End:8>>, S])).
pad(Width, Binary) ->
case Width = byte_size(Binary) of
N when N =< 0 -> Binary;
N -> <<Binary/binary, 0:(N*8)>>
end.