<div dir="ltr"><div dir="ltr"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi All,<br>
<br>
I receive binaries in my application:<br>
<br>
IMSI_CODED in hex_dump<br>
0000   46 06 09 21 43 65 87 F9<br>
<br>
In reality, the peer is sending me this IMSI : (64 60 90 12 34 56 78 9F).<br>
<br>
I hard-decode this IMSI_CODED like below:<br>
<br>
        <<R1:8, R2:8, R3:8, R4:8, R5:8, R6:8, R7:8, R8:8>> = <<IMSI_CODED:64>>, <br>
<br>
        Elements = [<br>
                string:right(integer_to_list(R1,16), 2, $0),<br>
                string:right(integer_to_list(R2,16), 2, $0),<br>
                string:right(integer_to_list(R3,16), 2, $0),<br>
                string:right(integer_to_list(R4,16), 2, $0),<br>
                string:right(integer_to_list(R5,16), 2, $0),<br>
                string:right(integer_to_list(R6,16), 2, $0),<br>
                string:right(integer_to_list(R7,16), 2, $0),<br>
                string:right(integer_to_list(R8,16), 2, $0)<br>
                ],                                              <br>
        R = [[B,A] || [A,B] <-Elements ],       %% here, I need to revert each element :-/<br>
        L = list_to_tuple(R),<br>
        Z = tuple_to_list(L),<br>
        Real_IMSI = string:join(Z,"")<br>
<br>
<br>
=> Real_IMSI =  "646090123456789F"<br>
<br>
I'm using the same hard-coding style to decode some SMS payload in<br>
binary format..<br>
<br>
But I can feel that there is a much more elegant way to do it, because<br>
as you can see, despite it's working, it's really dirty etc...<br>
<br>
Can anyone advice please?<br>
<br>
Thanks,<br>
<br>
Best Regards,<br>
</blockquote></div><div><br></div><div>1) <<<<Y:4, X:4>> || <<X:4, Y:4>> <= Bin>>.</div><div><br></div><div>2) <<<<((X bsl 4) bor (X bsr 4))>> || <<X>> <= Bin>>.</div><br><div>-- </div><div dir="ltr" class="gmail_signature">Led.</div></div>