लेकिन, अगर आप उनमें से एक गुच्छा को स्टोर करना चाहते हैं, तो आप उन्हें बिट-शिफ्ट कर सकते हैं और उन सभी को एक इंट, थोड़े यूनिक्स फ़ाइल अनुमतियों / मोड की तरह स्टोर कर सकते हैं।
उदाहरण के लिए मोड 755 के लिए, प्रत्येक अंक उपयोगकर्ताओं के एक अलग वर्ग को संदर्भित करता है: स्वामी, समूह, सार्वजनिक। प्रत्येक अंक के भीतर 4 को पढ़ा जाता है, 2 को लिखा जाता है, 1 को निष्पादित किया जाता है इसलिए 7 उन सभी को बाइनरी 111 की तरह है। 5 को पढ़ा जाता है और इसलिए 101 को निष्पादित करता है। अपनी खुद की एन्कोडिंग योजना बनाएं।
मैं सिर्फ शेड्यूल डायरेक्ट से टीवी शेड्यूल डेटा को स्टोर करने के लिए कुछ लिख रहा हूं और मेरे पास बाइनरी या हां / नो फील्ड्स हैं: स्टीरियो, hdtv, new, ei, close captioned, dolby, sap in Spanish, season प्रीमियर। तो 7 बिट्स, या अधिकतम 127 के साथ एक पूर्णांक। एक चरित्र वास्तव में।
अब मैं जो काम कर रहा हूं, उससे एसी उदाहरण। has () एक फ़ंक्शन है जो 1 रिटर्न देता है यदि दूसरा स्ट्रिंग पहले एक में है। inp इस फंक्शन का इनपुट स्ट्रिंग है। misc 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;
इसलिए मैं एक कमरे में 7 बूलियनों को अधिक के लिए कमरे के साथ संग्रहीत कर रहा हूं।