Twitt, чувак, ты считаешь этот вопрос нормальным? Я не в силах ответить на что? Как понять, правильно ли, что "6 & 2 = 2" ? Это же в школе на уроке информатики проходят.
Вот второй вопрос твой более конкретный.
Только ты не правильно написал "E_ALL ~ E_NOTICE."
~ - это отрицание. И надо было написать "E_ALL & ~ E_NOTICE" или "E_ALL | ~ E_NOTICE."
Прикол побитовых операций в том, что ими удобно оперировать, если пользоваться ими как флагами.
Смотри, мы в одном байтовом числе можем хранить 8 флагов, состояний.
То есть, вместо записи:
0) IsEnemy = true
1) WaterType = false
2) Aggressive = false
3) CanFly = true
4) HasEyes = true
5) HasFire = true
6) IsDead = false
7) IsVehicle = false
мы можем упаковать эти признаки (состояния) в число 0x00111001 => 32+16+8+1 = 57
То есть, число 57 говорит нам, что некий объект является врагом, он ещё живой, может летать, у него глаза, дышит огнём.
Слов много, я число короткое. MY_OBJ = 57
Теперь, скажем, у нас есть маска, определяющая, является ли объект летающим врагом - 0x00001001 => 9
FLYING_ENEMY = 9
Теперь мы можем сравнить наш объект:
if (MY_OBJ & FLYING_ENEMY) then {
//устанавливаем, например, флаг, что он умер
DEAD_FLAG = 0x01000000; // 64
MY_OBJ = MY_OBJ | DEAD_FLAG; => 0x01111001 = 64+57 = 121
}
Ильяс, если не находится в гугле, значит, разработчики решили не выкладывать в общий доступ информацию по своему устройству.
Этот UUID знает только их программа для связи с джойстиком и сторонним разработчикам они решили осложнить путь, чтобы они не могли работать с их устройством.
Даже если подключишься и начнёшь получать данные от характеристик, то возникнет другая проблема - что делать с полученным набором байт. Нужна будет дока, которой нет.
deepin, это место для потенциальной ошибки, которую будет сложно отловить. А, возможно, это даже может открыть доступ куда не следует. Опять же, слабое место.