Битовые операции, проверка битов

176
06 декабря 2018, 22:20

Использую битовые операции для опций в GUI, возникла необходимость проверить установлен ли хоть 1 бит. Правильно ли я понимаю что если число равно 0, то значит все биты находятся в сброшенном состоянии? Не понятно как быть с последним битом который отвечает положительное это число или отрицательное. Используется unsigned int. Можно пройтись циклом по всем битам, но может в этом нет необходимости и достаточно сравнивать просто с 0? Может ли возникнуть ситуация что будет -0 и +0 бит установлен но все же это ноль.

Answer 1

Дело в том, что для целых чисел обычно используется не просто бит, отвечающий за знак (как в числах с плавающей точкой например), а специальное представление дополнительный код, при котором не возникает ситуации с отрицательным нулем. В такой нотации например выставление верхнего бита в байте 10000000 дает число -128, а не -0.

READ ALSO
Ошибка C++ , консоль

Ошибка C++ , консоль

Решил попробовать себя в c++, но первая проблема не дает мне покоя

163
С++ Экономичней ли по времени/памяти передача базовых типов по ссылке?

С++ Экономичней ли по времени/памяти передача базовых типов по ссылке?

Допустим, будет ли выигрыш по времени выполнения/памяти во втором случае или нет?

153
Хэширование bcrypt C++

Хэширование bcrypt C++

Как реализовать хэширование в C++Например:

198
Конструкторы в C++

Конструкторы в C++

Читал статью на MSDN и там был такой код:

148