0Pricing
Zig Academy · Pelajaran

Field Bit dan Flag

Padatkan boolean dan field kecil secara efisien.

Field Bit dan Flag adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Many Flags, One Byte

Settings are often just on-or-off switches. Packing them as bit fields stores many flags in a single tiny integer.

Booleans Take One Bit

Inside a packed struct, a bool occupies exactly one bit. Stack several together and they share a single byte.

const Mode = packed struct {
    bold: bool,
    italic: bool,
    underline: bool,
};

Mix Bools and Small Ints

A packed struct can blend flags with narrow integers, modeling a real register where each bit group means something.

const Reg = packed struct {
    enabled: bool,
    speed: u3,
    mode: u2,
};

Read a Flag by Name

You access each bit through its field name, so the code reads clearly even though the data is tightly packed.

var m = Mode{ .bold = true, .italic = false, .underline = false };
if (m.bold) {}

Flip a Flag

Set or clear a flag by assigning to the field. No bit masking by hand, Zig handles the bit math for you.

m.italic = true;

The Raw Bits View

Need the underlying number? @bitCast turns the flag struct into its backing integer for storage or comparison.

const bits: u3 = @bitCast(m);

Decode Incoming Bits

Reading bits from a file or device? Cast the raw integer back into your struct to decode it into named flags.

const incoming: u3 = 0b101;
const m: Mode = @bitCast(incoming);

Enums as Bit Fields

A field can be an enum with a small backing integer, giving named choices that still fit in just a few bits.

const Speed = enum(u2) { slow, medium, fast };

Why Bother Packing

Bit fields save memory and match hardware exactly, which matters in embedded code, drivers, and binary file formats.

Layout Stays Predictable

Because the struct is packed, the bit order never shifts. What you declare is what hardware and other programs will see.

Clear Code, Tight Data

The big win: you write readable field names while the data stays as compact as hand-rolled bit twiddling. 🎛️

Quick Check

Think about how much space a bool uses inside a packed struct.

Recap

You packed flags into one integer: bools take one bit, mix in narrow ints and enums, and @bitCast moves between struct and raw bits. 🎉

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Field Bit dan Flag” gratis?

Ya — teks lengkap “Field Bit dan Flag” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Field Bit dan Flag”?

Padatkan boolean dan field kecil secara efisien. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Zig Academy?

Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Field Bit dan Flag” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?

Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. packed struct untuk Tata Letak Tepat
  2. Integer Lebar Sembarangan seperti u3
  3. Field Bit dan Flag
  4. extern struct dan Tata Letak ABI
← Kembali ke Zig Academy