gpt4 book ai didi

erlang - 反转二进制的更好方法

转载 作者:行者123 更新时间:2023-12-01 07:13:57 26 4
gpt4 key购买 nike

我正在尝试像这样反转二进制:

reverse(Bin) ->
list_to_binary(lists:reverse([rev_bits(<<B>>) || B <- binary:bin_to_list(Bin)])).


rev_bits(<<A:1, B:1, C:1, D:1, E:1, F:1, G:1, H:1>>) ->
<<H:1, G:1, F:1, E:1, D:1, C:1, B:1, A:1>>.

我不喜欢这个代码。你能建议更好的方法来完成这个程序吗?

最佳答案

有点像你的 rev_bits 函数:

rev (<<>>, Acc) -> Acc;
rev (<<H:1/binary, Rest/binary>>, Acc) ->
rev(Rest, <<H/binary, Acc/binary>>).

我相信二进制连接已经过优化,所以这应该已经相当快了。

编辑:使用子句而不是 case...of...end。

关于erlang - 反转二进制的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com