答えて
あなたは、(それ$0
sおよび$1
sの文字列を作るために)それらのそれぞれに$0
を追加し、リストを反転し、ベース2
でlist_to_integer/2
を使用することができます。
1> list_to_integer(lists:reverse([N + $0 || N <- [1,0,0,0,1,0,1]]), 2) == $Q.
true
ます。またlists:foldl
を使用することができます。コードは少し長いですが、それはlist_to_binary
を使用していません:
1> element(2, lists:foldl(fun(Digit, {Mul, Acc}) -> {Mul * 2, Acc + Digit * Mul} end, {1, 0}, Xs)) == $Q. true
これは基本的にやってと同等です:1 * 1 + 0 * 2 + 0 * 4 + 0 * 8 + 1 * 16 + 0 * 32 + 1 * 64
を。 $Q
以来
$Q = lists:foldr(fun(X,Acc) -> X + (Acc bsl 1) end, 0,[1,0,0,0,1,0,1]).
は、あなたがしなければならないすべては、ベースの数を2進数から10進数へのベース番号からBitToChar
の変換に使用される整数値です。
to_decimal(X) ->
to_decimal(lists:reverse(X), 1, 0).
% you can validate that if H = 1 then add, if other not but I omitted this validation
to_decimal([H | T], Times, Acc) ->
to_decimal(T, 2 * Times, H * Times + Acc);
to_decimal([], _Times, Acc) -> Acc.
そしてそれは整数を返します。
最も簡単な変換があります。あなたのケースで は:
> $Q = 81.
81
> $Q == 81.
true
それを行うための別の方法は、使用することですbit string comprehension:ある
X = [1,0,0,0,1,0,1],
<<C:7>> = << <<Bit:1>> || Bit <- lists:reverse(X) >>,
$Q == C.
は、リストから一度に1つの要素を選択し、ビットとして各要素を使用します最後に7ビットの数値を変数C
に抽出します。
ちょうど興味深いのは、1つのライナーで任意のサイズのリストに対してこれを行う方法です(つまり、 'Length = length(X).'を変数に格納せずに、 'C:Length'で)?私は 'binary:decode_unsigned/1'を試みましたが、ビットストリングは受け付けません。 – Dogbert
- 1. charをバイナリに変換する方法は?
- 2. Cのバイナリからcharへの変換
- 3. const char *をバイナリ演算子に変換する+
- 4. char *をcharに変換する
- 5. char * arrをchar * arr []に変換する
- 6. C charをchar *に変換する
- 7. charをbyteに変換するには?
- 8. NSStringをcharに変換するには?
- 9. char **をchar *またはcharに変換する
- 10. バイナリ変換のCharは突然間違っていますか?
- 11. charリストをintリストに変換する際のリストの型指定
- 12. Cython - 文字列のリストをcharに変換する
- 13. Cythonのchar **をconst char **に変換する方法は?
- 14. 数字をcharのリストに変換します
- 15. 変換タイプに「char **」「のconstのchar **」
- 16. Swigを使ってunsigned char *をPythonリストに変換するには?
- 17. バイナリをLinuxのテキストに変換する
- 18. イメージのフルパスをバイナリに変換する
- 19. テンソルフローのバイナリをintに変換する
- 20. const char *をchar *に変換する際の問題
- 21. UnicodestringをCharに変換する
- 22. 文字列をchar *に変換する*
- 23. Intをchar *ポインタに変換する
- 24. char * argv []をwstringに変換する
- 25. ブールをcharに変換する
- 26. charをdatetime odooに変換する9
- 27. unsigned charをNSStringに変換する
- 28. 文字列をcharに変換する
- 29. COLORREFをconst charに変換する
- 30. 16ビットオーディオサンプルをcharに変換する
ありがとうございます、それを行う他の方法はありますか? – soddik
私は 'lists:foldl/3'を使って別の方法を追加しました。 – Dogbert
しかし、私はそれを比較したいとは思わないような結果を表示する必要があります。コンソールでは$ Qでなければなりません。 – soddik