Задать вопрос
@synapse_people

Как уложить 2 цифры по 4 бита в 1 байт?

Имеем
int x = ?, y = ?;
как можно взять по 4 бита и уложить в 1 байт, то есть таким образом:
0000 | 0000
^ - X| ^ - Y

То есть нужно получить возможность положить 2 координаты в 1 байт и вычитать их обратно...
int x, y;
byte b;
b=Coords.pack(x,y);
...
x = Coords.unpackX(b); y = Coords.unpackY(b)
  • Вопрос задан
  • 465 просмотров
Подписаться 2 Простой Комментировать
Решение пользователя Денис Загаевский К ответам на вопрос (2)
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Для этого существуют битовые операции.
Сдвиг <<, >>
Логическиe И и ИЛИ &, |
packed = ((x& 0xf) << 4) | (y & 0xf) - это упаковка
y = packed & 0xf
x = (packed >> 4) & 0xf

0xf - это двоичное 1111
Ответ написан