Cờ bit gói nhiều câu trả lời có/không vào trong một số duy nhất. Mỗi chữ số nhị phân trong số đó là một công tắc riêng: bật hoặc tắt, được đặt hoặc không được đặt. Đây là một cách gọn nhẹ để chương trình ghi lại một vài thông tin nhỏ trong phạm vi một giá trị.
Giá trị đến từ đâu
Cờ bit, còn gọi là bit field, xuất phát từ lập trình. Trong các ngôn ngữ như C và C++, chúng cho phép lập trình viên lưu nhiều giá trị boolean bên trong một byte hoặc một nhóm byte, với từng bit hoặc nhóm bit được truy cập riêng. Các định dạng tệp mượn cùng ý tưởng này để ghi lại các tùy chọn về nội dung của chúng.
Trong một báo cáo metadata, nhiều khả năng bạn sẽ gặp cờ bit trên một file nén ZIP và trên các định dạng Office vốn là container ZIP bên dưới: tài liệu DOCX, XLSX và PPTX. Tệp ODT và sách điện tử EPUB cũng lưu trữ cờ này, nhưng báo cáo có thể không hiển thị nó. Định dạng ZIP gán cho mỗi mục bên trong gói nén một cờ bit mục đích chung, và chương trình tạo ra gói nén sẽ đặt giá trị đó. Không có ai nhập thủ công giá trị này.
Cách đọc giá trị
Cờ thường được hiển thị ở hệ thập lục phân, một hệ đếm theo cơ số 16 và được viết với tiền tố 0x. Giá trị 0x0 nghĩa là không công tắc nào được bật, đây là trường hợp thông thường. Các giá trị như 0x2 hoặc 0x808 nghĩa là có một hoặc nhiều bit đang bật, và bạn đọc chúng bằng cách chuyển số đó sang nhị phân rồi xem từng vị trí.
Ba công tắc ZIP sau đây đáng để biết:
- bit thứ nhất đánh dấu mục là đã được mã hóa, nghĩa là nó cần mật khẩu
- bit thứ tư cho biết kích thước và checksum của mục được ghi sau dữ liệu chứ không phải trước đó, đúng với trường hợp kho nén được tạo ngay trong quá trình xử lý
- bit thứ mười hai cho biết tên mục được lưu bằng UTF-8, bảng mã ký tự có thể biểu diễn dấu, chữ không thuộc bảng chữ cái Latinh và emoji
Tại sao điều này quan trọng đối với tệp của bạn
Cờ này giải thích những hành vi mà nếu không bạn sẽ thấy khó hiểu. Nó là nơi một tài liệu được bảo vệ bằng mật khẩu thông báo rằng nó đang bị khóa, trước khi bất kỳ chương trình nào yêu cầu bạn nhập mật khẩu. Nó cũng là lý do tại sao một số ứng dụng không thể cho bạn biết kích thước của một mục trong kho nén cho đến khi giải nén xong. Và nó là lý do tại sao tên tệp có dấu hoặc ký tự tiếng Trung hiển thị hoàn hảo trong một chương trình giải nén nhưng lại thành ký tự vô nghĩa trong chương trình khác: một chương trình tôn trọng cờ UTF-8 đó, còn chương trình kia lại giả định một bảng mã cũ hơn.
Trường này không dùng để mô tả chất lượng và cũng không chứa thông tin cá nhân. Đây là một ghi chú kỹ thuật về cách tệp được ghi, hữu ích khi có thứ gì đó không mở được và bạn muốn biết lý do.