با

باینری در Elixir

7 تمرین

درباره‌ی باینری

  • نوع باینری گونه‌ای تخصصی از نوع بیت‌استرینگ است.
  • باینری از بایت‌ها تشکیل شده است.
    • بایت از ۸ بیت تشکیل شده است.
    • بایت می‌تواند اعدادی از 0 تا 255 را نمایش دهد
    • مقادیر صحیح هگزادسیمال هنگام کار با بایت رایج‌اند: از 0x00 تا 0xFF.
  • لیترال‌های باینری با استفاده از فرم ویژه‌ی <<>> تعریف می‌شوند.
  • از <>/2 می‌توان برای الحاق بیت‌استرینگ‌ها، باینری‌ها و رشته‌ها استفاده کرد.
<<255>> == <<0xFF>>
# Overflowing bits are truncated
<<256>> == <<0>>
<<256::size(16)>> == <<1, 0>>

<<"Hello">> == <<72, 101, 108, 108, 111>>

بایت تهی نام دیگری برای <<0>> است.

رشته‌ها داده‌ی باینری کدگذاری‌شده‌اند

  • رشته‌ها داده‌ی باینری کدگذاری‌شده در قالب UTF-8 هستند.
    • آن‌ها در قطعه‌های ۸ بیتی (یک‌بایتی) کدگذاری می‌شوند و برای نمایش بیش از ۲۵۵ نویسه، تا ۴ بایت به کار می‌برند.
    • طول یک رشته ممکن است با اندازه‌ی بایتی آن یکسان نباشد.
# This string has a string length of 5, but is made up of 7 bytes
string = "cześć"
String.length(string) != byte_size(string)

# Even emoji strings are encoded binaries
"👍" == <<240, 159, 145, 141>>

تطبیق الگو روی داده‌ی باینری

# Ignore the first 8 bytes, bind the remaining variable sized binary to `body`
<<_::binary-size(8), body::binary>>

این کار برای رشته‌ها هم انجام می‌شود:

# bind the first 5 bytes to `name`,
# match the string literal " the ",
# bind remaining bytes to `species`
<<name::binary-size(5), " the ", species::binary>> = <<"Frank the Walrus">>
{name, species}
# => {"Frank", "Walrus"}
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

باینری را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین باینری قفل 1 تمرین دیگر را باز کنید