【问题标题】:Extract the first N elements of a binary in Erlang在 Erlang 中提取二进制文件的前 N ​​个元素
【发布时间】:2019-08-09 13:03:39
【问题描述】:

谁能告诉我如何在 Erlang 中获取以下二进制列表中的前 4 个字符:

<<245,185,198,200,52,227,138,93,250>>

【问题讨论】:

    标签: split erlang


    【解决方案1】:
    1> M = <<245,185,198,200,52,227,138,93,250>>.
    <<245,185,198,200,52,227,138,93,250>>
    2> <<A,B,C,D, _/binary>> = M.
    <<245,185,198,200,52,227,138,93,250>>
    3> A.
    245
    4> B.
    185
    5> C.
    198
    6> D.
    200
    7> 
    

    【讨论】:

      【解决方案2】:

      有两种方法:

      1)

      将二进制文件拆分为列表 -

      [245,185,198,200,52,227,138,93,250] = binary_to_list(<<245,185,198,200,52,227,138,93,250>>).
      {"õ¹ÆÈ",[52,227,138,93,250]} = lists:split(4, [245,185,198,200,52,227,138,93,250]).
      

      2)

      或者直接获取二进制部分

      <<"õ¹ÆÈ">> = binary:part(<<245,185,198,200,52,227,138,93,250>>, 0, 4).
      

      3)

      如果您需要精确的 4 个数字 - 您可以使用此功能

      [A, B, C, D | _Tail] = binary_to_list(<<245,185,198,200,52,227,138,93,250>>).
      
      2> A.
      245
      3> B.
      185
      4> C.
      198
      5> D
      

      【讨论】:

      • 感谢您的回复。它给了我这个>。但我需要这样的东西。 >
      【解决方案3】:

      使用Bit Syntax:

      << R:4/binary,_/binary >> = <<245,185,198,200,52,227,138,93,250>>.
      

      【讨论】:

      • 感谢您的回复。它给了我这个>。但我需要这样的东西。 >
      • @hasi 这两个值完全相同,õ¹ÆÈ245,185,198,200 UTF-8 编码。只需通过&lt;&lt;245,185,198,200&gt;&gt; =:= &lt;&lt;"õ¹ÆÈ"&gt;&gt;查看即可。
      • @hasi,你的问题是,谁能告诉我如何获得前 4 个字符..." 现在你说你想要整数?!io:format("~w~n", [R]). => &lt;&lt;245,185,198,200&gt;&gt;
      • @7stud 感谢您的评论。我在我的问题中犯了一个错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 2018-06-24
      • 2011-09-06
      • 2011-12-10
      • 2010-09-30
      相关资源
      最近更新 更多