for << << b1::size(2), b2::size(3), b3::size(3) >> <- "hello" >>, ...> do: "0#{b1}#{b2}#{b3}" ["0150", "0145", "0154", "0154", "0157"]
1) h ascii碼的10進位制對應值是 104
2 ) 104 轉換成 二進位制 01101000
3 ) 按照這個模式 b1::size(2), b2::size(3), b3::size(3) b1 佔2位 01轉換成十進位制為1, b2佔3位 101 轉換成十進位制為5, b3佔3位 000 轉換成十進位制為0
4) 所以 按照 "0#{b1}#{b2}#{b3}" 方式返回 "0150" , 就是["0150"]
例子2
bin = <<3 :: size(2), 5 :: size(4), 1 :: size(2)>>
<<213>>
3的二進位制是 11 , size(2)表示2個位元位, 所以11保留
5的二進位制位是101 ,size(4)表示佔4個位元位 ,所以還不夠用0補位,最後是 0101
1的二進位制位是01 size(2)表示佔2個位元位, 所以用還是01
最後合起來二進位制是 11010101 ,十進位制是213