Форма представления данных в компьютере



Форма представления данных в компьютере - student2.ru снова программным путем преобразуется в последовательность символов. В памяти компьютера число хранится в виде двоичного представления.

Целые числа, в зависимости от типа данных, хранятся в памяти компьютера, за­нимая один, два, четыре и более байта. Каждый бит в байте — это один двоичный разряд. В случае, когда число должно иметь знак, один из разрядов используется для хранения знака. В табл. 11.1 показаны варианты целочисленных представлений с разным числом байтов.

Таблица 11. 1. Представление целых чисел
Количество байтов Знак Диапазон
Без знака 0... 255
Со знаком -128 ...127
Без знака 0... 65535
Со знаком -32768... 32767
Без знака 0... 4294967295
Со знаком -2147483648 ...2147483647
Без знака 0... 18446744065119617025
Со знаком -9223372032559808513... 9223372032559808512

Как видите, даже 32-разрядного целочисленного представления, как со знаком, так и без, вполне достаточно для решения большинства задач.

Теоретически в памяти компьютера представление отрицательного целого числа может храниться в прямом, обратном или дополнительном коде. Предположим, нам надо представить в двоичном виде целое число 7. Без знака оно поместится в 8-разрядную ячейку следующим образом:

Если это десятичное число -7 (минус семь), то его прямое представление будет выглядеть так:










То есть старший бит призван показать, что это число со знаком «минус».

Однако на практике отрицательные числа не хранятся в виде прямого кода, а всегда приводятся к дополнительному коду. Этот код получается из прямого следующим образом: все разряды, кроме знакового, инвертируются (то есть вме­сто единиц подставляются 0, вместо нулей — единицы). Так число превращается в обратный код. Затем к результату прибавляется единица, и код становится до­полнительным. Вот так будет выглядеть дополнительный код для числа -7:


Глава 11. Представление данных в компьютере

Форма представления данных в компьютере - student2.ru Дополнительный код используется для уменьшения количества циклов, за которые процессор выполняет арифметические операции над этими числами, по­скольку позволяет заменить операцию вычитания операцией сложения.

Действительные числа состоят из двух частей: мантиссы и порядка. Ман­тисса — это целое число, содержащее только значащие цифры исходного числа, а порядок — это позиция запятой, разделяющей целую и дробную части числа. Например, если в памяти надо сохранить число 00313,560, то записаны будут два целых числа: 31356 и 3.

При хранении действительных чисел возникает проблема: некоторые действия над числами приводят к потере точности.

Пример, При делении 1 на 3 результатом является бесконечная иррациональная дробь: 0,3333... Поскольку место в памяти, отведенное под запись этого числа, не бесконечно, то в определенном месте повторение троек придется остановить и записать в память округленное число. Это, в свою очередь, значит, что при умножении такой дроби на три уже не получится результат, равный единице, то есть происходит потеря точности.

Символьные данные

Символьные данные, которые несут в себе текстовую информацию, попадают в компьютер наиболее простым из всех известных способов: после нажатия клави­ши на клавиатуре генерируется один байт данных, который записывается в память компьютера. Каждой клавише компьютера соответствует одно определенное со­четание битов в байте. Поскольку битов в байте 8, то общее количество сочетаний, которое может быть получено в результате различных комбинаций нулей и единиц внутри байта, равно 256 (28). Например, 10 нажатий клавиш создает в памяти ком­пьютера последовательность из 10 заполненных байтов. Таков процесс поступления в компьютер и хранения в компьютере простого текста.

Любая из комбинаций битов в байте может рассматриваться как число, за­писанное в двоичном коде. Соответствие числа, которое при нажатии клавиши записывается в память компьютера, и символа, который появляется на экране при воспроизведении данного числа в символьном виде, называется кодовой таблицей. По мере развития компьютерной техники потребность во все более полном ото­бражении символьной (текстовой) информации возрастала. Вначале казалось, что для кодирования символов при помощи чисел с избытком хватит 127 байт. Первое по порядку 31 десятичное число было отдано под служебные символы (перевод строки, перевод каретки, звонок, пустой символ) (табл. 11.2). Следующие по по­рядку числа (от 32 до 127) кодировали символы алфавита (табл. 11.3).

Этой таблицы символов вполне хватило для ввода символьной информации на английском языке, и она стала стандартом ASCII (American Standard Code for Information Interchange — американский стандартный код для обмена информа­цией).


11.1. Форма представления данных в компьютере
Таблица 11.2.Коды управляющих символов (0-31)
Код Обозначение Клавиша Значение Отображаемый символ
nul Л@ Нуль  
Soh ЛА Начало заголовка О
Stx ЛВ Начало текста Ф
Etx лс Конец текста  
Eot AD Конец передачи
Enq ЛЕ Запрос *
Ack лр Подтверждение  
Bel AG Сигнал (звонок)
Bs ЛН Забой (шаг назад) а
Ht Л1 Горизонтальная табуляция о
Lf AJ Перевод строки
Vt ЛК Вертикальная табуляция с?
Ff AL Новая страница
Cr ЛМ Возврат каретки S
So   Выключить сдвиг J3
Si ло Включить сдвиг #
Die лр Ключ связи данных  
del AQ Управление устройством 1 <
dc2 AR Управление устройством 2 t
dc3 AS Управление устройством 3 II
dc4 Ay Управление устройством 4  
nak ли Отрицательное подтверждение §
syn AV Синхронизация
etb AW Конец передаваемого блока I
can лх Отказ т
em Ay Конец среды
sub AZ Замена  
esc л[ Ключ  
fs л\ Разделитель файлов |_
gs л] Разделитель группы  
rs лл Разделитель записей А
us   Разделитель модулей

      Глава 11. Представление данных в компьютере
Таблица 11.3.Символы с кодами (0-31)
Код Символ Код Символ Код Символ Код Символ
пробел Р Н
! Q I
«   R J
# ; S К
$ < т L
% = и m
& > V ПО п
? W о
( @ X Р
) А Y q
* В Z г
+ С [ S
  D \ t
- Е ] U
  F Л V
/ G   W
Н   X
I А У
J b Z
75 - К с {
7fr L d
М е }
N f -
О g del

Для кодирования символов, отличных от символов английского алфавита, была использована вторая часть из 256 комбинаций, числа от 128 до 256. Эта часть полу­чила название расширенной таблицы ASCII и может содержать в себе символы того или иного национального алфавита. При этом если первая часть таблицы ASCII сформирована один раз и не меняется, то вторая ее часть изменяется в зависимости от того, в какой операционной системе вы работаете. Буквы алфавита остаются теми же самыми, а связанные с ними числа меняются. Так, только для русского языка появились кодировки СР-866 (MS-DOS), CP-1251 (Windows), KOI8-R (UNIX и Linux). Именно наличие нескольких кодовых таблиц для одного и того же языка является причиной появления на интернет-страницах потоков странных иероглифов вместо обычного текста: программа просмотра Интернета не всегда способна определить, какую кодовую таблицу выбрать.


Наши рекомендации