Tetapi, jika Anda ingin menyimpan banyak dari mereka, Anda bisa menggeser-gesernya dan menyimpan semuanya sebagai satu int, sedikit seperti izin / mode unix file.
Untuk mode 755 misalnya, setiap digit mengacu pada kelas pengguna yang berbeda: pemilik, grup, publik. Dalam setiap digit 4 dibaca, 2 adalah tulis, 1 dijalankan jadi 7 semuanya seperti biner 111. 5 dibaca dan dijalankan 101. Buat skema penyandian Anda sendiri.
Saya hanya menulis sesuatu untuk menyimpan data jadwal TV dari Jadwal Langsung dan saya memiliki bidang biner atau ya / tidak: stereo, hdtv, baru, ei, teks tertutup, dolby, getah dalam bahasa Spanyol, premier musim. Jadi 7 bit, atau integer dengan maksimal 127. Satu karakter banget.
Contoh AC dari apa yang saya kerjakan sekarang. has () adalah fungsi yang mengembalikan 1 jika string ke-2 ada di yang pertama. inp adalah string input untuk fungsi ini. misc adalah karakter unsigned yang diinisialisasi ke 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;
Jadi saya menyimpan 7 boolean dalam satu bilangan bulat dengan ruang lebih banyak.