Что это значит
if ((readParameter - > type(0) & 0xff) == 0xff) {}
Я знаю, когда мы будем&’с oxff, то он возвращает LSB. Но что это значит, оценивая его снова с == 0xff?
Я чувствую что-то вроде этого (например):
if ((00000000 00000000 00000000 11011001 & 00000000 00000000 00000000 11111111) == 00000000 00000000 00000000 11111111)
{
//IF THEY ARE EQUAL IT ENTERS IN THE LOOP ? IN THIS CASE THEY ARE NOT EQUAL
}
Пожалуйста поправьте меня
если я не прав?
Но что это значит, оценивая его снова с == 0xff?
этот if
проверяет, равен ли младший байт 0xff. Остальное что readParameter->type(0)
возврат может содержать другие установленные биты. Если они не были удалены с & 0xff
тогда равенство 0xff никогда не может быть истинным.
Я знаю, когда мы будем&с чем-то, то он возвращает LSB.
это не так, когда вы используете двоичное двоичное И, тогда результат зависит от аргументов, используемых в операции. если ты &
с 0xff вы получите младший байт, но если вы это сделаете (ui32value & 0xff000000) >> 24
тогда вы будете читать самый старший байт.
Результат операции фильтрации ( & 0xff
) сравнивается с самой маской, чтобы проверить, равны ли все последние 8 битов параметра 1