Упаковка/распаковка массива чисел в одно поле

Есть некая лотерея в которой генерируется 5 чисел от 1 до 20-ти. Например: 3, 10, 2, 14, 9.

Вопрос на выбор:

  • Как упаковать 5 выбранных чисел в одно поле INT32 чтобы компактно хранить его в БД и после при необходимости распаковать обратно в массив чисел для использования?
  • Или подскажите по какой формуле это можно сделать?
  • Или где почитать про алгоритмы решения подобных задач (на русском)?

Ответы (1 шт):

Автор решения: Igor
a1,a2,a3,a4,a5

b = (((a1 * 32 + a2) * 32 + a3) * 32 + a4) * 32 + a5



a5 = b % 32
b = b / 32
a4 = b % 32
...
→ Ссылка