2012-03-08 5 views
-1

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

+1

Слишком много вашего кода, отсутствующего в вашем примере, чтобы легко решить проблему. Например, откуда происходит переменная «данные»? Возможно, это даже источник вашей проблемы ...? –

+0

woops ... те списки ... я забыл добавить это .. спасибо за головы ... – BigBug

+0

Где этот предполагаемый код? –

ответ

2

Вы пробовали отладить его?

Когда вы 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) выполняется.

+0

Я исправил проблему, вы определенно оказались на правильном пути. так что :) – BigBug

Смежные вопросы