Знакомство с логическими (побитовыми) операторами

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by [Dead]Demon, 16 Dec 2009.

  1. [Dead]Demon

    [Dead]Demon Member

    Joined:
    7 Oct 2009
    Messages:
    60
    Likes Received:
    8
    Reputations:
    5
    Некоторые люди испытывают проблемы с пониманием логических операторов, поэтому была создана данная статья, объясняющая и обучающая их использовать.
    Знакомство с битами
    Что же такое биты?

    Простыми словами, биты - это индивидуальные единицы и нули, которые составляют все, что имеет отношение к компьютерам. Все данные, которые вы используете, хранятся в вашем компьютере, используя биты. BYTE (байт) составлен из восьми бит, WORD (слово) равно двум байтам (BYTE), или 16-и битам (Bit). DWORD - это два слова (WORD), или же 32 бита.
    PHP:
      0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0  ||              |               |               |              ||  |+- 31--ый бит  |               |               |    0-ой бит -+|  |               |               |               |               |  +-- BYTE 3 -----+--- BYTE 2 ----+--- BYTE 1 ----+-- BYTE 0 -----+  |                               |                               |  +----------- WORD 1 ------------+----------- WORD 0 ------------+  |                                                               |  +--------------------------- DWORD -----------------------------+
    Преимущество наличия логических (побитовых) операторов заключается в том, что вы можете использовать BYTE, WORD или DWORD в качестве маленького массива или структуры. Использование данных операторов поможет вам проверить или установить значения определенных бит или групп бит.
    Шестнадцатеричные числа и как они связаны с битами
    При работе с битами не так легко выразить любое число, используя только единицы и нули, что известно также как двоичное представление. Для этого используются шестнадцатеричные числа.

    Как вы уже наверняка знаете, необходимо 4 бита для обозначения чисел от 0 до 15, что также является областью однозначного шестнадцатеричного числа. Данная группа из четырех бит, или пол байта (BYTE), называется полубайт (нибл). Поскольку в одном байте 2 полубайта, мы можем использовать два шестнадцатеричных числа для отображения значения одного байта (BYTE).

    PHP:
    ПОЛУБАЙТ ШЕСТЗНАЧЕНИЕ  ======   =========   0000        0   0001        1   0010        2   0011        3   0100        4   0101        5   0110        6   0111        7   1000        8   1001        9   1010        A   1011        B   1100        C   1101        D   1110        E   1111        F
    Итак, если бы мы имели один байт (BYTE) содержащий букву 'r' (ASCII код - 114), то он выглядел бы следующим образом:
    PHP:
     0111 0010    Бинарное    7    2     Шестнадцатеричное
    Это можно также записать в виде '0x72'