Binary 将位字符串转换为元组

Binary 将位字符串转换为元组,binary,erlang,Binary,Erlang,我试图找出如何将Erlang位字符串转换为元组,但到目前为止没有任何运气 例如,我想从元组中获取{1,2}您可以使用模块erl\u scan和erl\u parse,如中所示。由于erl\u scan:string需要字符串,而不是二进制,因此必须首先使用binary\u将值转换为\u list: > {ok, Scanned, _} = erl_scan:string(binary_to_list(<<"{1,2}">>)). {ok,[{'{',1},{inte

我试图找出如何将Erlang位字符串转换为元组,但到目前为止没有任何运气


例如,我想从元组
中获取
{1,2}

您可以使用模块
erl\u scan
erl\u parse
,如中所示。由于
erl\u scan:string
需要字符串,而不是二进制,因此必须首先使用
binary\u将值转换为\u list

> {ok, Scanned, _} = erl_scan:string(binary_to_list(<<"{1,2}">>)).
{ok,[{'{',1},{integer,1,1},{',',1},{integer,1,2},{'}',1}],1}
现在,解析的变量
包含以下结果:

> Parsed.
{1,2}

您可以使用模块
erl_scan
erl_parse
,如中所示。由于
erl\u scan:string
需要字符串,而不是二进制,因此必须首先使用
binary\u将值转换为\u list

> {ok, Scanned, _} = erl_scan:string(binary_to_list(<<"{1,2}">>)).
{ok,[{'{',1},{integer,1,1},{',',1},{integer,1,2},{'}',1}],1}
现在,解析的变量
包含以下结果:

> Parsed.
{1,2}

您可以使用二进制函数和erlang:list\u to\u tuple/1

1> B = <<"{1,2}">>.
<<"{1,2}">>
2> list_to_tuple([list_to_integer(binary_to_list(X)) || X <- binary:split(binary:part(B, 1, byte_size(B)-2), <<",">>, [global])]).
{1,2}
1>B=。

2> list_to_tuple([list_to_integer(binary_to_list(X))|X您可以使用二进制函数和erlang:list_to_tuple/1

1> B = <<"{1,2}">>.
<<"{1,2}">>
2> list_to_tuple([list_to_integer(binary_to_list(X)) || X <- binary:split(binary:part(B, 1, byte_size(B)-2), <<",">>, [global])]).
{1,2}
1>B=。
2> list_to_tuple([list_to_integer(binary_to_list(X))| X