Разбор неприятностей!Ошибка в логике - PullRequest
0 голосов
/ 08 марта 2012

У меня есть небольшая ошибка здесь где-то в моем коде!Я должен быть слепым, потому что я действительно не могу найти это или понять это.У меня есть список байтовых массивов.Я разбираю первые 2 элемента, а также самый последний элемент в каждом массиве.Если я получу значение -16, -11 или -7, я хочу сохранить значения.По какой-то причине последнее значение в массивах не удаляется.Почему это происходит?

1 Ответ

2 голосов
/ 08 марта 2012

Вы пытались его отладить?

Когда у вас есть b = -110, оно прошло это условие:

if(b!= -15 && i + 2 < srec.length() && (Character.digit(srec.charAt(i + 2), 16) << 4) + Character.digit(srec.charAt(i + 3), 16) != -15 
                && (Character.digit(srec.charAt(i + 2), 16) << 4) + Character.digit(srec.charAt(i + 3), 16) != -11)

b != 15 -> true
i + 2 = 124 < srec.length() = 142 -> true

(Character.digit(srec.charAt(i + 2), 16) << 4)+ Character.digit(srec.charAt(i + 3), 16) = -7 and -7 != -15 and also -7 != -11

, следовательно, data.add(b) выполняется.

...