ЖУРНАЛ ХАКЕР

Глоссарий кодера, или С Самого Начала

группа товарищей

Спецвыпуск Хакер, номер #004, стр. 004-004-5


СТРУКТУРА ДАННЫХ - это все вместе. Вот твои планы на вечер (ночь, утро...) - это и есть структура данных, просек? И эта структура состоит из данных разных типов. Этих самых типов, как ты уже понял, вагон и маленькая тележка. Комп в одном массиве переменные разных типов хранить не дает. Да и выяснить, что больше, строка "ВАСЯ ПУПКИН" или число 132, не может тоже (я тоже не могу :) ). Резонный вопрос - почему? Все просто. Помнишь про две ноги в одной штанине? Так вот, каждый тип данных занимает разное количество места в ПАМЯТИ. Ну, ты когда из дома выходил, ты ж знал, куда идешь и зачем? Во-во, ты помнил это дело, то есть держал в ОПЕРАТИВНОЙ ПАМЯТИ (RAM). Оперативная она потому, что ты с ней сейчас работаешь. А завтра все забудешь на фиг. А вот записняк твой с телефонами - это уже ПОСТОЯНННАЯ ПАМЯТЬ (ROM). Пока ты его не посеял, он всегда с тобой.

РАЗМЕРЫ

Так вот о размерах. Например, бит - он и занимает бит памяти. А вот число 200 в бит уже не запихнешь. Приходится выделять памяти побольше. Помнишь, мы договорились делить информацию на байты (8 бит)? Прикинем... 11111111b - это в десятичной системе счисления 255. Больше, чем число 200, которое нам надо запомнить. Значит, влезет! Смело выделяем под это число 1 байт и радуемся жизни. А если нам надо записать 300? В байт уже не лезет... Надо выделять побольше. Два байта. В два байта у нас поместится аж 1111111111111111b - 65535!!! Круто, да? Такое число, состоящее из 2 байт, принято называть СЛОВОМ (WORD). А ведь бывают числа и побольше... Тут все снова просто - увеличиваем размер числа в байтах в 2 раза, получаем 4 байта, или ДВОЙНОЕ СЛОВО (DOUBLE WORD). И уж сюда можно затолкать!!! Не, не то, что ты подумал. Просто число - правда, аж до 4294967295.

+-

Теперь такая подлянка - а если число отрицательное? Чего делать? Метод номер раз: берем один бит числа (первый слева) и договариваемся, что если он равен 1, то это число - положительное, больше 0, а если этот бит равен 0, то число отрицательное. На этом мы, конечно, теряем 1 бит в СТАРШЕМ РАЗРЯДЕ (HIGH), но получаем знак, то есть наше число становится ЗНАКОВЫМ. Метод номер два: берем и договариваемся, что, например, первый байт слова содержит положительные числа при том условии, если другой байт равен 0, а второй байт - отрицательное. Сложно? Правильно, сложно. Поэтому второй метод почти нигде не применяется. Чем дальше в лес, тем толще партизаны. А если число не целое? Сам подумай, как компу, который только и знает, что 0 и 1, втолковать, что вот это - не целое число, а офигительная дробь? И тут пытливые умы нашли метод. Они поделили это самое число на две части. Одна - до запятой, вторая - после. Первое число обозвали ЦЕЛОЙ ЧАСТЬЮ, а второе - МАНТИССОЙ (имечко будь здоров...). И стали его хранить в таком виде в памяти. А чтобы мало не казалось (мало ли, может ты полет на Марс считать собрался), дробные числа разделили на 2 типа:

ОДИНАРНОЙ (SINGLE) и ДВОЙНОЙ (DOUBLE) ТОЧНОСТИ. Они занимают 4 байта и 8 байт соответственно. Двойная точность - это когда на Марс собираешься. Там на ноль целых ни фига десятых ошибся и вместо Марса прилетел на Юпитер, и хорошо, если вообще прилетел.

Назад на стр. 004-004-4  Содержание  Вперед на стр. 004-004-6