Я работал над проектом C и написал следующую строку, чтобы проверить, является ли самый значимый бит int8_t равным 1:
if (f & 0b10000000 == 0b10000000) {
, и CLion выдал предупреждение, говорящее мне: «Выражение можетбыть упрощенным до "f! = 0" '
Буду ли я прав, говоря, что это неправильно?Я перечитываю побитовые операции, чтобы быть уверенным, и все еще чувствую, что это не эквивалентные операции, например, f = 1 вернул бы false с моим выражением, но это сообщение заставляет меня сомневаться в себе.
Спасибо за любую помощьВы можете дать!