Двоичное представление - преобразование в C ++ - PullRequest
0 голосов
/ 12 октября 2018
a = 13;
for (b = 8∗ sizeof(int)−1; b >= 0; b−−)
    cout << ( (a & (1U << b)) > 0 );  

Может кто-нибудь объяснить мне, что происходит в "cout"?Это условие?Я имею в виду, почему это должно быть "> 0"?И каков правильный порядок действий у этого «кута»?Спасибо

1 Ответ

0 голосов
/ 13 октября 2018

(a & (1U << b)) > 0 возвращает 1, если проверка прошла, и 0, если нет.Этот результат - то, что напечатано cout.& выполняет побитовую операцию с двумя целыми числами, а 1U << b выполняет сдвиг влево 1 на b бит (U просто указывает компилятору обрабатывать значение как беззнаковое).

...