二進位制和 Bitstrings
elixir 中的二進位制檔案是使用 Kernel.SpecialForms 構造 << >> 建立的。
它們是一個強大的工具,使得 Elixir 對於使用二進位制協議和編碼非常有用。
二進位制和位串是使用以逗號分隔的整數或變數值列表指定的,由“<<”和“>>”組成。它們由單元組成,可以是一組位或一組位元組。預設分組是單個位元組(8 位),使用整數指定:
<<222,173,190, 239>> # 0xDEADBEEF
Elixir 字串也可以直接轉換為二進位制檔案:
iex> <<0, "foo">>
<<0, 102, 111, 111>>
你可以為二進位制檔案的每個段新增說明符,允許你編碼:
- 資料型別
- 尺寸
- 位元組序
這些說明符通過使用“::”運算子跟隨每個值或變數進行編碼:
<<102::integer-native>>
<<102::native-integer>> # Same as above
<<102::unsigned-big-integer>>
<<102::unsigned-big-integer-size(8)>>
<<102::unsigned-big-integer-8>> # Same as above
<<102::8-integer-big-unsigned>>
<<-102::signed-little-float-64>> # -102 as a little-endian Float64
<<-102::native-little-float-64>> # -102 as a Float64 for the current machine
你可以使用的可用資料型別是:
- 整數
- 浮動
- bits(bitstring 的別名)
- 位元串
- 二進位制
- bytes(二進位制的別名)
- UTF8
- UTF16
- UTF32
請注意,在指定二進位制段的大小時,它會根據段說明符中選擇的型別而變化:
- 整數(預設)1 位
- 漂浮 1 位
- 二進位制 8 位