Сравните шестнадцатеричные и десятичные значения - PullRequest
2 голосов
/ 03 апреля 2009

У меня есть байтовый массив, хранящийся как в шестнадцатеричном, так и в десятичном значении. Я хочу найти шестнадцатеричное 1. int SOH = 0X01; если (SOH == 1)

Показывает истину. Это правильно?

Ответы [ 3 ]

5 голосов
/ 03 апреля 2009

Ваши байтовые массивы будут просто хранить байтовые значения. Шестнадцатеричное (или десятичное, или восьмеричное) - это просто представление этого значения в исходном коде. После сохранения они имеют одинаковое значение, например

0x01 == 1 == 01 

(последнее восьмеричное)

Таким образом, проверка определенного значения выполняется по одному и тому же коду. Значение не будет знать , если оно будет представлено как hex / dec / oct.

1 голос
/ 03 апреля 2009

Как данные в байтовом массиве хранятся в шестнадцатеричном и десятичном виде? Массив байтов содержит байты.

        byte[] decimal = new byte[] {1,10 };
        byte[] hexa = new byte[] {0x1,0xa };

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

0 голосов
/ 03 апреля 2009

не уверен, действительно ли это решит вашу проблему

private static final byte SOH = 1;  // or 0x01 if you prefer, is the same value

byte[] data = ...

for (int i = 0; i < data.length; i++) {
    if (data[i] == SOH) {
        // do what you need
        break;   // don't if you want to find all SOH
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...