void main()
{
int x=7;
printf("%d",x&(x-1));
int y=6;
printf("%d",y&(y-1));
printf("%d",y>>2);
}
Когда я помещаю нечетное число, я получаю вывод n-1, где n - нечетное число, но когда я положил y = четное число, я получаю вывод 0. Я не могу понять это пожалуйста помоги.Объяснение вывода побитовых операций
Мой второй вопрос заключается в том, что когда я печатаю y >> 2, то есть 6 >> 2 Я получаю вывод 1. Пожалуйста, объясните мне это также. Я знаю, что эти битовые операции, но моя концепция не clear.Thanks
http : //en.wikipedia.org/wiki/Bitwise_operations_in_C - возьмите бумагу и ручку (cil) и обработайте ее. –
Кроме того, '(x & (x-1)) == 0' может использоваться для проверки того, является ли' x' мощность 2 (или 0) – P0W