私は特にejabberdソースを読んでいますejabberd_http.erl
。
以下のコードでは、
...
case (State#state.sockmod):recv(State#state.socket,
min(Len, 16#4000000), 300000)
of
{ok, Data} ->
recv_data(State, Len - byte_size(Data), <<Acc/binary, Data/binary>>);
...
どういう16#4000000
意味ですか?
私はこれをErlangシェルでテストしました。
%%erlang shell
...
7>16#4000000.
67108864
8>is_integer(16#4000000).
true
私はそれが単なる整数値であることを知っています。
16#4000000
代わりに書くことに何か利点はあります67108864
か?
Erlangでは、#の前の数字は整数の基数です。あなたの例で16#4000000
は、はの16進表現を意味します67108864
。他の言語では、多くの場合、として表され0x4000000
ます。
16進表現を使用する理由の1つは、各桁が4ビットを表すためです。たとえば16#F
、16
(10進数)または1111
2進数です。バイナリ処理を使用する場合、16進数を使用すると、人間の読者にとって扱いやすく、理解しやすくなります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加