Организация и функционирование компьютеров
bf1271d8

Двоичная система счисления и представление информации в компьютере


Для представления информации в компьютере используется двоичная система счисления. Мы привыкли для записи чисел использовать десятичную систему счисления. На самом деле эта система счисления не единственная. В общем случае позиционной системой счисления называется способ представления чисел в виде последовательности цифр, при котором вклад цифры в величину числа зависит от положения цифры в записи числа.

Сначала разберемся в том, что собой представляет десятичная система счисления. Начнем с целых чисел. Возьмем какое-либо число, записанное в десятичной системе счисления, например, 397. В этом числе 7 единиц, 9 десятков и 3 сотни, т.е. величина числа равна 7*1+9*10+3*100 = 7*100+9*101+3*102. Аналогично устроена позиционная система счисления по произвольному основанию. В общем случае, пусть число X записывается в системе счисления по основанию M в виде  ANAN-1…A2A1A0 (число цифр в записи равно  N+1). Тогда величина числа вычисляется по формуле X = A0*M0 + A1*M1 + A2*M2 +…+ AN-1*MN-1 + AN*MN. Здесь A0, A1, A2, …, AN-1, AN – так называемые M-ричные цифры, которые представляют значения от 0 до M-1 включительно.

Например, записанное в семиричной системе счисления число 236417 = 1+4*71+6*72+3*73+2*74 = 1+28+294+1029+4802 = 615410 . Проще вычислить это значение с использованием так называемой схемы Горнера, которая заключается в расстановке скобок в вышеприведенной сумме: 1+4*71+6*72+3*73+2*74 = 1+7*(4+7*(6+(7*(3+7*2) ) ) = 1+7*(4+7*(6+7*17) ) = 1+7*(4+7*125) = 1+7*879 = 615410 .

Как вычислить цифры M-ричного представления числа? Для этого сначала посмотрим, как вычислляются цифры десятичного представления числа. Пусть X снова равно 397. При делении числа 397 на 10 получаем 39 и 7 в остатке. Остаток 7 выражает количество единиц в числе X. Теперь разделим 39 на 10. Получим частное 3 и 9 в остатке. Остаток 9 теперь представляет число лесятков. Наконец, делим 3 на 10 и получаем 0 и 3 в остатке. В результате этой операции получаем количество сотен – 3. Десятичная запись числа состоит из остатков 7, 9 и 3, но стоящих в обратном порядке.


Контрольные вопросы по теме.

Переведите 134210  в семиричную систему счисления.

Переведите  13425 в десятичную систему счисления.

Переведите  134210 в двоичную систему счисления.

Переведите  100111010101102 в шестнадцатиричную систему счисления.

Что такое представление чисел с плавающей запятой и для чего оно используется?

Что такое ASCII-коды?

Почему в байте 8 битов?



Сколько книг поместится в 1Гб, если книги содержат 500 стр., а на странице примерно 2000 символов?




По такой же схеме вычисляются цифры в произвольной M-ричной системе счисления . Возьмем то же число X=39710  (естественно, что величина числа не зависит от той системы счисления, в которой оно записано). Попробуем записать его в пятиричной системе счисления. Для этого разделим его на 5. Получим 79 и 2 в остатке. Запомним первый остаток: A0 = 2. Далее разделим 79 на 5. Получим 15 и 4 в остатке. Запомним второй остаток: A1 = 4. Теперь разделим на 5 число 15. Получим 3 и 0 в остатке. Следовательно, A2 = 0. Последнее деление 3 на 5 дает 0 и 3  в остатке, то есть последняя полученная цифра – это A3

= 3. Равенство частного нулю означает, что процедуру следует завершить. Полученные остатки следует записать в обратном порядке. В результате проделанного вычисления получаем, что 39710 = 30425.

Для дробных чисел формула для вычисления величины числа слегка видоизменяется. Пусть число записано в системе счисления по основанию M в виде  AnAn-1…A2A1A0

, A-1A-2…A-h . Тогда его величина вычисляется по формуле

X = A-h*M-h +…+ A-2*M-2+A-1*M-1

+ A0*M0 + A1*M1 + A2*M2

+…+ An-1*Mn-1 + An*Mn

.

Так, число 1011,0112  представляет собой значение  2-3+2-2+20+21+23 = 11,37510 . Следует отметить, что в европейских языках для разделения целых и дробных разрядов числа вместо запятой используется точка.

В информатике актуальны двоичная и шестнадцатиричная системы счисления. В шестнадцатиричной системе счисления требуется 16 цифр. В качестве шестнадцатиричных цифр используются 10 десятичных цифр от 0 до 9, а также шесть первых букв латинского алфавита: A (10), B (11), C (12), D (13), E (14) и F (15). В двоичной системе счисления всего две цифры: 0 и 1. В соответствии с общим определением число, записанное в двоичной системе счисления, является суммой степеней двойки, соответствующих тем местам  в записи числа, на которых стоят единицы. Например, число 10010111012  равно сумме 1+22+23+24+26+29

= 1+4+8+16+64+512 = 60510 .

Для хранения числа в памяти компьютера оно переводится в двоичную систему счисления.


Каждая двоичная цифра соответствует одному разряду хранения информации в памяти компьютера – одному биту. В современных компютерах биты хранения информации объединяются в группы по восемь, которые называются байтами. Соответственно при хранении чисел двоичные цифры группируются по восемь. Например, для хранения числа 10011 100111012 требуется два байта. В первый байт записываются цифры 00010011, а во второй – цифры 10011101.

Шестнадцатиричная и двоичная системы счисления связаны между собой. Если в двоичной записи числа сгруппировать двоичные цифры по четыре (считая справа налево), а затем заменить каждую четверку двоичных цифр на шестнадцатиричную цифру, то получится шестнадцатиричное представление числа. Например, если в вышеприведенном примере 10011100111012  разбить двоичные цифры на четыре группы 1 0011 1001 1101, то 12  = 116 , 00112

= 316 , 10012 = 916 , 11012 = D16 , и в результате получается представление числа 10011100111012  в шестнадцатиричной системе: 139D16 . Шестнадцатиричная запись иногда используется, если необходимо указать содержимое нескольких байтов памяти компьютера (например, в руководстве или учебном пособии).

Вся информация в компьютере представляется в цифровой форме. Это естественно для чисел. Для нечисловой информации (например, текста) используется стандартный прием: всевозможные элементарные значения нумеруются, и вместо самих значений хранятся их номера (которые играют роль кодов). Так, при представлении текстовой информации все символы сводятся в таблицу, а текст записывается номерами символов. В любом случае коды нечисловых данных, хранящиеся в компьютере, не имеют содержания вне таблиц нумерации. Количество двоичных разрядов, необходимых для записи наибольшего номера объекта данных, зависит от их общего объема. Наибольшее число, которое в двоичной системе счисления можно записать с помощью N цифр, состоит из N единиц. Это число равно 1+2+4+…+2N-1

= 2N-1 . Например, с помощью восьми двоичных цифр можно различать 28=256 символов текста.



Это рассуждение настолько важно для всей идеологии хранения информации в двоичном коде, что в информатике принято измерять объем не в десятичной системе счисления, а в специальных единицах измерения, использующих степени двойки. Используя то обстоятельство, что 210=1024 не очень отличается от 103-1000, принято 1024 байт называть килобайтом (1Кб). Аналогично мегабайт – это 1024 килобайта (1Мг), а гигабайт – 1024 мегабайта (1Гб). Количество информации в современном мире столь велико, что приходится вводить еще одну единицу – терабайт, равную 1024 гигабайта (1Тб). Если не нужна особая точность, то можно считать, что:

1 терабайт = 1 000 гигабайт = 1 000 000 мегабайт = 1 000 000 000 килобайт = 1 000 000 000 000 байт.

То устройство компьютера, в котором хранится информация, называется оперативным запоминающим устройством (ОЗУ) или оперативной памятью. Если отвлечься от технических деталей, оперативная память компьютера представляет собой линейную последовательность байтов. Длина этой последовательности в современных персональных компьютерах десятки сотни мегабайт. Еще больше память суперкомпьютеров. Для хранения чисел выделяется несколько байтов (от одного до 10). Различают две основных формы представления числа в памяти компьютера. При первом способе все разряды выделенных для хранения числа байтов памяти последовательно нумеруются, и двоичные цифры числа непосредственно записываются в соответствующие биты памяти. Один бит выделяется для представления знака числа (0 – плюс, 1 – минус). При втором способе число представляется в так называемой нормализованной (или экспоненциальной) форме:  X=M*10n, где число М (называемое мантиссой)  заключено от 1 до 10, число n (называемое порядком) - целое.

Используется несколько форматов представления целых и нормализованных чисел, которые отличаются объемом и наличием или отсутствием знакового бита. От этого зависит диапазон чисел, которые могут быть представлены в этом формате. Например, если заранее известно, что какая то целая величина положительна и не может быть больше 255, то для ее хранения достаточно одного байта.


Для хранения величин, изменяющихся в диапазоне от  -215 = –32768  до  215-1 = 32767, выделяется два байта. Если целое число не вмещается в этот диапазон, то для его хранения выделяется четыре байта (диапазон от –231 до 231-1).

В принципе, подобный подход годится и для дробных чисел. В память компьютера заносятся цифры числа, но при этом считается, что на определенном месте этой записи стоит десятичная запятая. Такая форма записи называется представлением числа с фиксированной запятой. Максимальное число цифр в числе и конкретное положение запятой определяется форматом числа. Предусмотрено несколько вариантов формата представления чисел с фиксированной запятой в памяти компьютера.

 Представление нормализованных чисел называется представлением числа с плавающей запятой. Он используется для хранения величин, которые могут принимать любые значения. В памяти компьютера порядок и мантисса хранятся отдельно в форме двоичных целых чисел со знаком. В современных компьютерах используется несколько форматов представления чисел с плавающей запятой, которые отличаются общим объемом представления чисел (6, 8 или 10 байтов), а также размерами памяти, отводимой отдельно для мантиссы и порядка. От этого зависят общий диапазон возможных значений числовой величины в компьютере и минимальная ошибка в вычислениях, проистекающая из-за невозможности запоминать в компьютере большее количество знаков после запятой.

В реальной действительности информация  разнородна. Обычно делят данные на числовую информацию, текстовую информацию и логическую информацию. Под текстовой информацией понимается линейная последовательность символов. Для представления символа в памяти компьютера используется следующая схема: фиксируется множество допустимых символов текста (обычно их  28 = 256 символов) и каждому символу присваивается номер (от 0 до 255). После этого последовательность символов заменяется на последовательность номеров, которые в памяти компьютера записываются в виде целых двоичных чисел (без знака).


Один номер помещается в одном байте памяти ( именно поэтому исторически сложилось разбиение памяти на группы по восемь битов, так как оказалось, что оптимальное количество символов – 28, а не, например, 29).

Множество допустимых символов и их номера составляют таблицу кодирования символов. Естественно, эта таблица не должна зависеть от произвола программиста или производителя компьютеров, поскольку передача инфор­мации в этом случае будет сильно затруднена. В настоящее время существует стандарт ASCII (American Standard Code for Informational Interchange), содержащий набор и номера 128 основных символов (коды от 0 до 127) и набор и номера 128 расширенных символов (коды от 128 до 255). Поскольку в этот стандарт не входят символы национальных алфавитов (которых значительно больше, чем 128), в каждой стране 128 кодов расширенных символов (от 128 до 255) заменяются символами национального алфавита. Другими словами, каждый язык с алфавитом, отличным от английского алфавита, устанавливает свой стандарт. Осмысленный текст на одном языке будет бессмысленным на другом. Таким образом, для правильной работы с текстом важна не только сама информация, но и ее интерпретация. Программа, которая правильно интерпретирует колы символов в соответствии с таблицей кодирования в определенном алфавите, называется текстовым драйвером.

Логическая величина – это величина, которая может принимать всего два значения – true  и  false («истина» и «ложь»). Для хранения значения логической переменной достаточно одного бита. Обычно значение «ноль» бита памяти ассоциируется с истиной, значение «единица» – с ложью.

Для хранения в памяти компьютера более сложных объектов, таких как видеоизображения или звуки, описания этих объектов преобразуются в числовую форму. Способов кодирования такого вида информации существует достаточно много, но в конечном итоге изображение или звук представляются в виде последовательности нулей и единиц, которые размещаются в битах памяти компьютера и при необходимости извлекаются оттуда и интерпретируются определенным образом.

Контрольные вопросы по теме.

1. Переведите 134210  в семиричную систему счисления.

2. Переведите  13425 в десятичную систему счисления.

3. Переведите  134210 в двоичную систему счисления.

4. Переведите  100111010101102

в шестнадцатиричную систему счисления.

5. Что такое представление чисел с плавающей запятой и для чего оно используется?

6. Что такое ASCII-коды?

7. Почему в байте 8 битов?

8. Сколько книг поместится в 1Гб, если книги содержат 500 стр., а на странице примерно 2000 символов?


Содержание раздела