ฉันมีชุดของจำนวนเต็ม ซึ่งแต่ละชุดมีช่วงเฉพาะ:
foo = [1, 5]
bar = [1, 10]
baz = [1, 200]
ฉันสามารถคำนวณได้ว่าต้องใช้จำนวนบิตเท่าใดในการจัดเก็บแต่ละหมายเลขแยกกัน ตามจำนวนสถานะที่แตกต่างกันที่ตัวเลขเหล่านั้นสามารถมีได้:
foo = 5 possible states ~ 3 bits
bar = 10 possible states ~ 4 bits
baz = 200 possible states ~ 8 bits
ซึ่งให้ฉันทั้งหมด 15 บิต แต่ทุกหมายเลขก็มีช่วงที่ไม่ได้ใช้ทำให้เปลืองพื้นที่ ฉันสามารถคำนวณบิตที่จำเป็นสำหรับทั้งชุดแทนได้โดยการคำนวณสถานะที่เป็นไปได้ทั้งหมดของตัวเลขทั้งหมดที่รวมกัน:
5 * 10 * 200 = 10000 possible states ~ 14 bits
นี่สามารถช่วยฉันได้นิดหน่อย!
และนี่คือที่มาของคำถามของฉัน: วิธีใดที่ดีที่สุดในการโหลดและจัดเก็บหมายเลขโดยใช้เค้าโครงประเภทนี้