Получение отдельных байтов из шестнадцатеричного значения - PullRequest
1 голос
/ 22 апреля 2020

Есть ли способ получить отдельные байты из шестнадцатеричного десятичного значения в java

Если у меня есть шестнадцатеричное значение 0x190 (400), я хочу получить 0x90 и 0x01. Если у меня есть шестнадцатеричное значение 0x89 (137), я хочу получить 0x89 и 0x00

Я новичок в этом и не могу найти способ получить их по отдельности.

Спасибо за вашу помощь заранее

Спасибо, R

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

Если ваше число представлено как целое значение, вы можете использовать битовую маску для выделения конкретного байта.

int value = 0x190;

byte byteValue = (byte) ((value >>> i*8) & 0xff);
String byteAsString = String.format("0x%02x", byteValue);

, где i представляет i-й байт (начиная с 0)

0 голосов
/ 23 апреля 2020

Если это строковое значение

, например:

let hexDecimal = "0x89(137)";
let splitValue = hexDecimal .split("(");
let response =  splitValue[0]; `
...