Поговорим о числах.
        
Если вы всерьез хотите освоить компьютерную грамотность, то
придется ломать
привычные стереотипы. Мы привыкли в жизни, что все мы начинаем
считать с
единицы. Одно яблоко, первый день года, один рубль - тоже деньги. В
информатике вопрос поставлен ребром и решен совершенно однозначно:
ноль это
тоже число. И, хотя, во многих случаях счет привычно начинать с единицы, есть
много ситуаций, когда он (этот счет) начинается с нуля. Человек привычно
загибает или разгибает пальцы: один, два, три..., но в компьютере все
происходит по другому.
Числа хранятся в ячейках памяти в двоичном виде.
Основная (исходная) единица информации байт представлена
восемью разрядами
двоичной системы счисления: битами. То есть возникает ситуация, когда
каждый
из бит равен нулю. Это значит, что в памяти хранится
число ноль. Глупо было бы
пренебрегать такой ситуацией и исключить это число из использования, то есть
начинать счет с единицы. Вот и получается, что если в этой ячейке хранится
информация об адресе какой-то переменной в памяти, то этот адрес может быть
нулевым. Если в этой ячейке хранится информация о цвете, то ноль это например:
черный цвет, а это на самом деле так. Ну вот нет никакого цвета и все тут:
полный ноль.
        
Обычному человеку поначалу может быть непонятно, почему байт это
число от 0 до 255. На самом деле все просто.
Мы заранее не знаем какое число
хранится в байте. Байт это ячейка памяти. Поэтому говорят, что байт может хранить информацию (число) о 256 состояниях объекта
(например звука, цвета и т.д.).
Возьмем двоичное число, у которого, например, единицы во всех разрядах 4-х битного числа. Эта комбинация дает нам число 15, а не 16, как можно подумать.
А вот общее количество значений, которые могут хранится в 4-х разрядах двоичного
числа равно 16. Поэтому, если вы будете считать числа в двоичной системе, то при
установленных в единицу всех четырех разрядах двоичного числа, вы действительно
получите число 15. Но это будет шестнадцатое состояние четырех бит
этого числа.
При подробном рассмотрении данной ситуации все кажется совершенно очевидно, но
я даю вам гарантию, что при серьезном занятии информатикой, вы изредка будете
забывать, что счет в компьютерных системах начинается с нуля. Что поделаешь,
нас долго приучали к другому счету.
        
Ну что, идем дальше. Программисты, кроме этой, так им понравившейся,
двоичной системы счисления, изобрели еще и шестнадцатеричную. Это то еще зачем?
Как мы уже поняли, при кодировании информации пришлось воспользоваться 8-ю битами двоичного числа. Но вы можете себе представить ситуацию, когда программисты пишут
все числа в двоичной системе, я не могу. Это-же во первых
длинно и неудобно, во вторых, не увидишь как
и ошибешься. Поэтому двигатель человеческого прогресса: лень, а может еще что-то, заставили человека думать и это принесло результат. Раз неудобно записывать числа в двоичной системе, нужно изобрести другую. Десятичная система почему-то не понравилась: полный байт это 255, а два байта это вроде 510
что ли. Не привилась и восьмеричная система. Как там выглядит байт в
восьмеричной: 377. Как то странно, не правда ли. И тут на выручку пришла шестнадцатеричная система счисления. Она оказалась
на удивление наглядной и компактной. Числа в ней обозначили так: от 0 до 9 все идет, как обычно, а начиная с 10 и до 15 используем буквы английского алфавита от A до F. Например 10=A.
11=B... 15=F. И чем же, вы спросите, она удобна,
а вот чем. Например число 255
в этой системе запишется, как FF. Красиво, не правда ли. Число 15 в десятичной
в шестнадцатеричной 0F. Число 128 = 80. Замечательной особенностью является то,
что каждую из двух частей числа, обозначающую байт в шестнадцатеричной системе
очень легко интерпретировать в двоичное число, Наприме: F1 = 11110001, или
F0 = 11110000, а 1F = 00011111.
        
Вот таким образом и запись числа получается компактной, и в случае
если специалисту требуется это число разложить по косточкам, извините, по битам
он это может сделать моментально.
        
Но как же теперь все эти числа отличать. А очень просто, договорились
так: в конце числа ставить h(H), если оно шестнадцатеричное, b(B) если двоичное,
и не ставить ничего или D, если десятичное.
        
Теперь программисту все ясно: 101 - это сто один, 101B - это число 5 для
десятичной системы, а 101H - это в десятичной 257.
        
Вот так, пустое в арифметике число компьютерщики
сделали важным, и хоть звучит это непривычно, но выражения:
нулевая позиция, нулевое смещение, нулевой элемент
в компьютерной технике встречаются очень часто.