Я пытаюсь проверить количество установленных битов 2 или более в отрицании числа. Я пытаюсь это сделать, проверяя, имеет ли число значение 2. Но он не работает с отрицанием числа. Это мой код:Проверить количество заданных битов 2 или более в числе отрицательных бит
unsigned long int x = ~x; //x is given number
if(!(x & (x - 1))) printf("it have only one set bit);
У вас есть какой-либо sugestion?
Не получилось, что вам нужно. Если нужно считать биты, посмотрите на этот ответ: http://stackoverflow.com/a/21863332/2002198 –
Я хочу проверить только двоичное отрицание заданного числа, у которого есть 1 или (2 и более) бит. Мне не нужно знать точное количество битов. – Tomasz
Вы знаете, как проверить, установлено ли число с 1 бит. Любое ненулевое число, которое не имеет 1 битового набора, имеет как минимум 2 бита. –