Erlang筆記-二進位制-位元位語法
阿新 • • 發佈:2018-12-03
看Erlang的語法看到二進位制處理部分覺都很有意思,做個記錄
存在於很多函數語言程式設計語言之中的列表速構的思想,也被擴充套件到了Erlang的位元位語法中。位串速構酷似列表速構,只是[…]被換成了<<…>>。
以一個小整數列表為例,所有整數都在0和7之間,你可以按每個數3位元位將它們打包成位串,如下:“
<< << X: 3>> || X <- [1, 2, 3, 4, 5, 6, 7] >>
列印結果: <<41, 203, 23:5>>
這一步是怎麼獲得的呢,熟悉二進位制就可以很容易推匯出來
如果使用二進位制表示[1, 2, 3, 4, 5, 6, 7],而且每個數字只佔3位元位
001 010 011 100 101 110 111
列印的時候預設以8個位元位讀取,然後就可以根據下面來讀取資料
001 010 01 | 1 100 101 1 | 10 111
41(00101001)
203(11001011)
23:5(10111)
舉一反三
<< << X: 8>> || << X: 3>> <= << 41, 203, 23: 5>> >>
返回資料為<<1, 2, 3, 4, 5, 6 , 7>>
“`
[<< X: 8>> || << X: 3>> <= << 41, 203, 23: 5>>]
返回資料為[1, 2, 3, 4, 5, 6, 7]