За последние 24 часа нас посетили 68508 программистов и 10345 роботов. Сейчас ищут 2918 программистов ...

Поразрядная дизъюнкция (OR) разясните пож

Тема в разделе "PHP для новичков", создана пользователем Electric20, 27 янв 2009.

  1. Electric20

    Electric20 Активный пользователь

    С нами с:
    27 янв 2009
    Сообщения:
    6
    Симпатии:
    0
    Добрый вечер.
    Учу PHP, и никак не могу понять. Объясните если Вам не сложно,

    & Поразрядная конъюнкция (AND)
    | Поразрядная дизъюнкция (OR)
    ^ Поразрядное исключающее ИЛИ (XOR)
    ~ Поразрядное отрицание (NOT)
    << Сдвиг влево битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда
    >> Сдвиг вправо битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда

    <?
    echo(4<<2); // равно 16
    echo"<br>";
    echo(5>>1); // равно 2
    echo"<br>";
    echo(6&5); // равно 4
    echo"<br>";
    echo(6|5); // равно 7
    echo"<br>";
    echo(6^5); // равно 3
    >?
    echo(4<<2); // равно 16 - Как вычисляется 16 ? Это умножение или как?
    echo(5>>1); // равно 2 - Почему 2 ?
    echo(6&5); // равно 4 - Почему 4? Это берется среднее между 6 и 5? А если так echo(8&5); то какой результат будет?

    echo(6|5); // равно 7
    echo"<br>";
    echo(6^5); // равно 3 Тут тоже нечего не понятно.

    Покажите на пальцах, только плиз не посылайте в книге, я ведь учу с книжки которая стоит советом на этом форуме, и которой хорошие отзывы..
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.783
    Симпатии:
    0
    1)
    Код (Text):
    1. 4 << 2
    было число 4
    Код (Text):
    1. 00000100
    сдвинули на 2 бита вправо и получили число 16
    Код (Text):
    1. 00010000
    2)
    Код (Text):
    1. 6 & 5
    Код (Text):
    1. 00000110
    2. 00000101
    побитно применяем логическую операцию AND
    Код (Text):
    1. 00000100
    получили 4

    остальное по аналогии
     
  3. Electric20

    Electric20 Активный пользователь

    С нами с:
    27 янв 2009
    Сообщения:
    6
    Симпатии:
    0
    А, так все расчеты в двоичном коде...Спасибо! Понял!!
    :p