@amorphine

Метод для записи ниббла в массив байт — идеи?

Имеется объект, представляемый двумя id: id_a и id_b.
id_a - id длиной в один байт.
id_b - id длиной в один ниббл.
Имеется два массива: byte[4096] и byte[2048].
В первом массиве хранятся байтовые id_a, всего 4096 айдишников. Ему соответствует второй массив с нибблами(тоже 4096 нибблов), умещающимися в байтовом массиве длиной 2048.
Зная offset для id_a, мы можем прочитать id_b:
public static byte Nibble4(byte[] arr, int offset){
        return (byte) (offset%2 == 0 ? arr[offset/2]&0x0F : (arr[offset/2]>>4)&0x0F);
}

где arr - массив с нибблами.
Вопрос - как можно записать ниббл, имея массив с нибблами и offset? Можно псевдокодом. Спасибо.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
shift = (offset % 2) << 2;
arr[offset/2] = (arr[offset/2] & (0xF0 >> shift)) | ((value &0xF) << shift);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы