вычисление шестнадцатеричного байта в Java - PullRequest
1 голос
/ 23 февраля 2011

Я восхищаюсь байтовыми вычислениями и т. Д. ... мое приложение требует, чтобы я отправлял некоторые данные через сокеты в виде байтов ...

1st byte -> [ { ]
2nd byte -> [ { ]
3rd byte  -> [ 0xD1 ]
4th byte -> [ 0x00 ]
5th byte -> [sum of first,second and third hex value]
6th byte -> [ } ]
7th byte -> [ } ]

Это образец Как я могу выполнить такую ​​операцию, присваивая шестнадцатеричные значения в каждом байте, сохраняя эти байты в массиве ... Я немного застрял с этим .. Кто-нибудь может мне помочь ???

Ответы [ 3 ]

1 голос
/ 23 февраля 2011

Люди по какой-то причине часто путают представление числа со значением числа.Добавляемые вами значения не являются шестнадцатеричными, десятичными или двоичными.Они просто цифры.Байт - это байт.Вы можете просто добавить два байта с +, и в этом нет ничего волшебного.Он работает одинаково, независимо от того, отображаете ли вы результаты в шестнадцатеричном или десятичном виде, или в любом другом виде:

Пример:

  0x2A (42)
+ 0x13 (19)
= 0x3D (61)
1 голос
/ 23 февраля 2011

Hex - это просто обозначение значения в байте. Добавьте их вместе, используя обычный +.

0 голосов
/ 23 февраля 2011

вы можете создать массив байтов, например:

    byte[] data = new byte[7];

    data[0] = "{".getBytes()[0];
    data[1] = "{".getBytes()[0];
    data[2] = (byte) 0xd1;
    data[3] = (byte) 0x00;
    data[4] = (byte) 0xd1 + 0x00;
    data[5] = "}".getBytes()[0];
    data[6] = "}".getBytes()[0];
...