public long getLong() {
return (data.get(pointer++) & 0xFF) << 4 | (data.get(pointer++) & 0xFF) << 56
| (data.get(pointer++) & 0xFF) << 48 | (data.get(pointer++) & 0xFF << 32)
| (data.get(pointer++) & 0xFF) << 24 | (data.get(pointer++) & 0xFF) << 16
| (data.get(pointer++) & 0xFF) << 8 | (data.get(pointer++) & 0xFF);
}
Поинтер тут для того, что бы следующий вызов метода getLong() читал далее байты, как это упростить?
Выходит, что мне нужно что-то на подобии DataInputStream, но с поинтером.
Например, так
public long getLong() {
int[] shifts = {4, 56, 48, 32, 24, 16, 8, 0};
long res = 0;
for (int shift : shifts)
res |= data.get(pointer++) & 0xFF) << shift;
return res;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости