Использую битовые операции для опций в GUI, возникла необходимость проверить установлен ли хоть 1 бит. Правильно ли я понимаю что если число равно 0, то значит все биты находятся в сброшенном состоянии? Не понятно как быть с последним битом который отвечает положительное это число или отрицательное. Используется unsigned int. Можно пройтись циклом по всем битам, но может в этом нет необходимости и достаточно сравнивать просто с 0? Может ли возникнуть ситуация что будет -0 и +0 бит установлен но все же это ноль.
Дело в том, что для целых чисел обычно используется не просто бит, отвечающий за знак (как в числах с плавающей точкой например), а специальное представление дополнительный код, при котором не возникает ситуации с отрицательным нулем. В такой нотации например выставление верхнего бита в байте 10000000
дает число -128
, а не -0
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим, будет ли выигрыш по времени выполнения/памяти во втором случае или нет?