Nhưng, nếu bạn muốn lưu trữ một loạt chúng, bạn có thể dịch chuyển chúng và lưu trữ tất cả chúng dưới dạng một int, giống như các chế độ / quyền của tập tin unix.
Ví dụ, đối với chế độ 755, mỗi chữ số đề cập đến một lớp người dùng khác nhau: chủ sở hữu, nhóm, công khai. Trong mỗi chữ số 4 được đọc, 2 là ghi, 1 được thực thi nên 7 là tất cả chúng giống như nhị phân 111. 5 được đọc và thực thi vì vậy 101. Tạo nên sơ đồ mã hóa của riêng bạn.
Tôi chỉ đang viết một cái gì đó để lưu trữ dữ liệu lịch truyền hình từ Lịch trực tiếp và tôi có các trường nhị phân hoặc có / không: stereo, hdtv, mới, ei, chú thích gần, dolby, sap trong tiếng Tây Ban Nha, ra mắt mùa. Vì vậy, 7 bit, hoặc một số nguyên có tối đa 127. Một ký tự thực sự.
Ví dụ AC từ những gì tôi đang làm việc bây giờ. has () là hàm trả về 1 nếu chuỗi thứ 2 nằm trong chuỗi thứ nhất. inp là chuỗi đầu vào của hàm này. misc là một char không dấu được khởi tạo thành 0.
if (has(inp,"sap='Spanish'") > 0)
misc += 1;
if (has(inp,"stereo='true'") > 0)
misc +=2;
if (has(inp,"ei='true'") > 0)
misc +=4;
if (has(inp,"closeCaptioned='true'") > 0)
misc += 8;
if (has(inp,"dolby=") > 0)
misc += 16;
if (has(inp,"new='true'") > 0)
misc += 32;
if (has(inp,"premier_finale='") > 0)
misc += 64;
if (has(inp,"hdtv='true'") > 0)
misc += 128;
Vì vậy, tôi đang lưu trữ 7 booleans trong một số nguyên có nhiều chỗ hơn.