Разбить байт на 8 чисел
Здравствуйте, можно ли хранить 8 целых чисел в диапазоне от 0 до 31 в одном байте?
Я понимаю, как разбить одно 32-битное целое число на 4 байта с помощью битового сдвига,
но я не знаю, возможно ли то же самое с одним байтом.
Один байт может содержать 1 число до 255. В случае 2-х чисел,
Я предполагаю, что их может быть до 127... в случае 8, похоже, до 31
все должно быть по-настоящему.
Или я совершенно не прав и это невозможно?
Я хотел бы иметь что-то вроде:
int getAt(int pos, byte b) // pos is 0 - 7 { // extraction code } void setAt(int pos, byte & b) // pos is 0 - 7 { // insertion code }
Что я уже пробовал:
Я привязался только к поиску в интернете и сдвигу вроде b > & gt; 1, но без удачи.
Gerry Schmitz
Вы можете хранить 8 целых чисел в одном байте, но они будут ограничены 0 или 1.
Однако это может быть ключом к чему-то "высшему".
например, 111111, "Небесная" гексаграмма; составленная из двух небесных триграмм: 111; и так далее.