Есть статический метод:
public class Application
{
public static bool IsOdd(int i)
{
return ((i & 1) == 1);
}
}
Объясните пожалуйста как работает эта строка: return ((i & 1) == 1); Понимаю что она возвращает true или false, & тоже понятно что такое, но как работает код в скобках не пойму.
Спасибо.
В скобках используются битовые операции с маской - убирается всё, кроме младшего бита.
Т.е. если в двоичном виде неважно что было на месте "x" (0 или 1) после примерения маски 0000 0001 к числу xxxx xxxy через логическое "и" гарантированно останется только младший (крайний справа) бит в своём исходном виде, остальное обнулится. Останется только 0000 000y.
i = xxxx xxx1 xxxx xxx0
&&&& &&&& &&&& &&&&
1 = 0000 0001 0000 0001
---- ---- ---- ----
0000 0001 = 1 0000 0000 = 0
Для сравнения: это как в десятичной системе взять число 321: маска подобрана так, что остаётся только цифра 1 в младшем разряде. И типа этот остаток проверяется на не/чётность.
Почитайте по теме:
Знаю, есть getBoundingClientRectЭта штука даёт возможность определить расстояние до краёв на странице, относительно опорного тега
Хочу узнать из функции которую вызвали, кто именно её вызвал, и чтобы можно было обращаться к этой функции и к её prototype
К примеру клиент обратился ко мне и просит чтобы я добавил для его сайта некоей функциональности или что-то другое не важно, как именно происходит...