0
我可以在二郎的整數很容易地轉換爲二進制的Erlang整數:轉換爲位置符號二進制
integer_to_binary(11, 10).
在返回的二進制的比特是在這種情況下含有這些位:
0011000100110001
我想寫一個函數來生成一個二進制數字,其中包含傳入數字的二進制符號。也就是說,數字十一看起來像這樣的位:
1011
在Erlang有沒有簡單的方法來做到這一點?
我可以在二郎的整數很容易地轉換爲二進制的Erlang整數:轉換爲位置符號二進制
integer_to_binary(11, 10).
在返回的二進制的比特是在這種情況下含有這些位:
0011000100110001
我想寫一個函數來生成一個二進制數字,其中包含傳入數字的二進制符號。也就是說,數字十一看起來像這樣的位:
1011
在Erlang有沒有簡單的方法來做到這一點?
要將任意大小的無符號整數轉換爲由整數中的字節組成的二進制數,可以使用binary:encode_unsigned/1
或binary:encode_unsigned/2
。
1> binary:encode_unsigned(11).
<<"\v">>
2> binary:encode_unsigned(11) == <<0:4, 1:1, 0:1, 1:1, 1:1>>.
true
binary:encode_unsigned/1
將以big endian表示形式存儲字節。要以小端存儲字節,您可以使用binary:encode_unsigned/2
:
1> binary:encode_unsigned(123456789, little).
<<21,205,91,7>>
2> binary:encode_unsigned(123456789, big).
<<7,91,205,21>>
您的意思是這個'binary:encode_unsigned/1'? 'binary:encode_unsigned(11)== << 0:4,1:1,0:1,1:1,1:1 >>。如果沒有,那麼你對'11'的期望值是多少? – Dogbert
哇。在閱讀文檔時,我完全錯過了這一點。這正是我所期待的!如果你把一個快速答案放在一起,我會接受它。 – Stratus3D