2
我無法理解erlang中的位打包。Erlang位打包的輸出
假設:
R=4
,G=6
和B=8
那麼爲什麼輸出這樣的:
<< R:5,G:5,B:6 >>
輸出:<<33,136>>
。
我不明白。任何人都可以解釋嗎?
我無法理解erlang中的位打包。Erlang位打包的輸出
假設:
R=4
,G=6
和B=8
那麼爲什麼輸出這樣的:
<< R:5,G:5,B:6 >>
輸出:<<33,136>>
。
我不明白。任何人都可以解釋嗎?
<< R:5,G:5,B:6 >>
這條記錄我們分配了5,5和6位,結果是一個2字節的二進制序列。爲了更好地理解爲什麼發生這種情況,請啓動逆向轉換變換的數字33和136以二進制形式:
integer_to_list(33,2).
integer_to_list(136,2).
「100001」 「10001000」
我們得到以下行。由於二進制序列的每個段都是8的倍數,因此向左側補充33個零的顯示。
L2=lists:append("00",lists:append(integer_to_list(33,2),integer_to_list(136,2))).
「0010000110001000」
繼續執行的解碼。第三個參數表明位
V1 = list_to_integer(lists:sublist(L2,5),2).
V2 = list_to_integer(lists:sublist(L2,6,5),2).
V3 = list_to_integer(lists:sublist(L2,11,6),2).
對不起,我的英語的人數,希望我解釋清楚。
非常感謝您的回覆,它明確表示並回答了問題。 – user3404572