Bitfield là gì?

Noun C

Khi chúng ta sử dụng các structure trong ngôn ngữ lập trình C, bộ nhớ (memory) được yêu cầu bởi biến structure là tổng bộ nhớ được yêu cầu bởi tất cả các member riêng lẻ của cấu trúc đó. Để tiết kiệm bộ nhớ hoặc để hạn chế bộ nhớ của các member của structure , chúng ta sử dụng khái niệm bitfield. Sử dụng bitfield chúng ta có thể chỉ định bộ nhớ được cấp phát cho các member riêng lẻ của một structure . Để hiểu bitfields chúng ta hãy xem xét đoạn code ví dụ sau:


struct Date
{
    unsigned int day;
    unsigned int month;
    unsigned int year;
} ;

Ở đây, biến Date cấp phát 6 byte bộ nhớ.

Trong structure ví dụ trên cả day và month đều không yêu cầu 2 byte bộ nhớ cho mỗi member. day chỉ lưu trữ các giá trị từ 1 đến 31, yêu cầu 5 bit bộ nhớ và month chỉ lưu trữ các giá trị từ 1 đến 12 chỉ cần 4 bit bộ nhớ. Vì vậy để tiết kiệm bộ nhớ, chúng ta sử dụng các bitfield.

Hãy xem xét structure sau với các bitfield


struct Date
{
    unsigned int day : 5;
    unsigned int month : 4;
    unsigned int year;
} ;

Ở đây, biến Date cấp phát 4 byte bộ nhớ.

Learning English Everyday