Некоторые люди испытывают проблемы с пониманием логических операторов, поэтому была создана данная статья, объясняющая и обучающая их использовать. Знакомство с битами Что же такое биты? Простыми словами, биты - это индивидуальные единицы и нули, которые составляют все, что имеет отношение к компьютерам. Все данные, которые вы используете, хранятся в вашем компьютере, используя биты. 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'