Что это за функция logi c? - PullRequest
       51

Что это за функция logi c?

0 голосов
/ 30 апреля 2020

u и v - целые числа без знака

for (shift = 0; ((u | v) & 1) == 0; ++shift)
        {
                u >>= 1;
                v >>= 1;
        }

Я не могу понять ((u | v) & 1) == 0 logi c, что если u = 9 и v = 10, что будет быть возвращением функции logi c.

1 Ответ

2 голосов
/ 30 апреля 2020

Если u = 9, то двоичное представление битов u равно ...1001.

Если v = 10, то двоичное представление битов v равно ...1010.

Если вы двоично - или эти значения, используя |, вы получите ...1011.

Если вы теперь двоично - и вышеупомянутое значение с 1 (т.е. двоичное ...0001), вы получит ...0001.

Наконец, если вы сравните двоичный файл ...0001 с 0, используя ==, значения будут другими, и, следовательно, результатом оператора == будет 0.

...