Здравствуйте, T4r4sB, Вы писали:
TB>1. Только не !x, а ~x
это зависит от нотации
TB>2. Тогда уж сразу ~x==0
хорошо, уточню свою формулу, ( x^(!x) ) & x == x
Действительно, был неправ
And с результатом операции убирает неоднозначность операции битового инвертирования — ведь неочевидно и зависит от платформы/реализации, инвертит ли битовое инвертирование старшие биты, или нет
метод лучше x & (x+1) == 0 тем, что гарантирует отсутствие переполнения
впрочем, это без разницы, но раз вопрос сугубо теоретический