Java: как использовать байтовые литералы больше 0x7F

В Java я не могу взять массив байтов без знака (из чего-то вроде Wire Shark) и поместить его в java... Потому что я получу ошибки компиляции, поскольку все, что больше 127 десятичных знаков/0x07F, рассматривается не как byte, но как int.... IE:

        byte[] protocol = { 0x04, 0x01, 0x00, 0x50, /*error*/0xc1, /*error*/0xdb, 0x1c, /*error*/0x8c, 
                0x4d, 0x4f, 0x5a, 0x00 };

Нужен хороший способ справиться с беззнаковыми массивами символов и поместить их в Java как литералы.


person Zombies    schedule 27.02.2010    source источник


Ответы (1)


Приведите их к (byte).

person PSpeed    schedule 27.02.2010
comment
Хех, уже поздно. По какой-то причине я придумал приводить их сначала к (char), а затем к (byte). Кроме того, следует отметить для не-java'ers: char - это 16-битное слово unicode в Java. - person Zombies; 27.02.2010
comment
Забавны пути, которыми ведет нас лишенный сна разум. :) - person PSpeed; 27.02.2010