تتيح سلاسل البتات للمبرمجين التعامل مع البيانات الثنائية بفعالية.
يمكنك إنشاء سلاسل البتات بأناقة باستخدام الصيغة الخاصة <<>>.
<<0b101::3>> == <<5::3>> and <<5::3>> == <<5::size(3)>>
# => true
first = <<0b110::3>>
second = <<0b001::3>>
combined = <<first::bitstring, second::bitstring>>
# => <<49::size(6)>>
يمكنك إجراء مطابقة باستخدام صيغة <<>> والاستفادة من هذه المطابقة في تفكيك البيانات الثنائية بشكل أعمق.
<<data_size::32, count::size(data_size)>> = <<8::32, 3::8>>
# => <<0, 0, 0, 8, 3>>
data_size
# => 8
count
# => 3
يمكنك إجراء مطابقة على ما تبقى من سلسلة البتات باستخدام ::bitstring.
<<_::32, remainder::bitstring>> = <<8::32, 3::8>>
# => <<0, 0, 0, 8, 3>>
remainder
# => <<3>>
إن نوع البيانات الثنائية هو نوع خاص من سلاسل البتات يكون فيه عدد البتات قابلاً للقسمة على 8.
يوفّر Elixir سكرًا نحويًا للتعامل مع القيم الحرفية للأعداد الصحيحة بصيغ مختلفة:
0b1000001 = ?A = 65