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