Как получить 32-разрядное целое число со знаком из шестнадцатеричных байтов, не применяя к нему дополнение 2 в java - PullRequest
0 голосов
/ 05 октября 2011

У меня есть 4 байта шестнадцатеричных значений напрямую, без добавления двух дополнений к подписанному inetger. Как получить значение int из шестнадцатеричных байтов, используя Java.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Разве это не работает?

int value = ((0xff & b4) < 24) | ((0xff & b3) < 16) | ((0xff & b2) < 8) | (0xff & b1);
0 голосов
/ 05 октября 2011

Используйте Лонг.Вы не можете использовать int, поскольку он всегда подписан, а 4 байта просто не подходят.

    Long l = Long.parseLong("FFFFFFFF", 16);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...