Представление и обработка числовой информации в компьютере
Хранение данных в компьютере
Для хранения и обработки данных в компьютере используется совокупность определенного количества разрядов, которая называется разрядной сеткой. При этом число элементарных разрядов n, с которыми компьютер оперирует как с одним целым (считывает из памяти, производит вычисления), характеризует разрядность его элементов (например, всевозможных регистров процессора, запоминающих устройств). В современных компьютерах используется число разрядов n, являющееся степенью числа 2.
Группа из восьми соседних элементарных ячеек (регистров) и называется байтом. С помощью одного байта можно закодировать 28=256 различных букв, цифр или положительных чисел в диапазоне от 0 до 255.
Возможности байта для кодирования данных ограничены из-за слишком малой разрядности. Поэтому компьютеры устроены так, что они могут оперировать как с единым целым не только с одним байтом, но также и с группами из двух, четырех, восьми и т.д. соседних байт.
Подобные группы байт принято называть (в зависимости от архитектуры компьютера) словом, полусловом, двойным словом. В большинстве случаев, словом называют группу из четырех соседних байт, группу из двух соседних байт - полусловом, группу из восьми соседних байт - двойным словом. Такие единицы используются в основном для представления числовых данных.
Байт | Байт | Байт | Байт | Байт | Байт | Байт | Байт |
Полуслово | Полуслово | Полуслово | Полуслово | ||||
СЛОВО | СЛОВО | ||||||
ДВОЙНОЕ СЛОВО |
Представление целых чисел без знака.Целоечисло без знака располагается в регистре (слове, полуслове или двойном слове) так, что его самый младший двоичный разряд записывается в крайний правый бит разрядной сетки, причем все разряды должны быть обязательно заполнены, даже если в этом разряде будет храниться “незначащий ноль”. Например, десятичное число 1910=100112 в 16-разрядном представлении (полуслове) запишется так:
При такой форме представления целых чисел без знака диапазон их возможных значений находится в пределах от 0 до 2n-1, где n – число разрядов в регистре (разрядной сетке). В таблице приведены максимальные значения десятичных чисел без знака и соответствующее им число разрядов (бит):
Число разрядов | Максимальное двоичное число без знака | Максимальное десятичное число без знака |
28 –1 = 255 | ||
216 –1 = 65535 | ||
232 –1 = 4294967295 |
Представление целых чисел со знаком.Для представления целых чисел со знаком один разряд, как правило, старший отводится под знак числа. Знак положительного числа кодируется нулем, а знак отрицательного - единицей в этом разряде.
0 |
Знак числа «+»
Такая форма представления целых чисел со знаком, когда крайний левый бит разрядной сетки отводится под знак числа, а остальные n-1 бит отводятся под цифры числа в двоичной системе счисления, называется прямым кодом двоичного числа. Прямой код положительного числа фактически совпадает с самим числом, а прямой код отрицательного числа отличается от положительного только наличием единицы в знаковом разряде.
Естественно, что выделение одного разряда под знак числа приводит к уменьшению имеющихся в нашем распоряжении разрядов регистра на единицу. Поэтому, максимальное значение числа, которое можно представить в n-разрядном регистре, также уменьшится. Теперь оно будет равно 2n-1-1
Форма представления двоичных чисел в виде прямого кода используется в компьютере только для представления целых положительных чисел.
Сложение положительных чисел в компьютерной арифметике осуществляется над прямыми кодами двоичных чисел. Для реализации операции вычитания, используется специальная форма представления отрицательных чисел, называемая дополнительным кодом, что позволяет заменить операцию вычитания простым сложением. При этом операция сложения выполняется над всеми разрядами полученного дополнительного кода, т.е. распространяется и на разряды знаков, рассматриваемых в данном случае как разряды целой части числа.
Дополнительный код отрицательного двоичного числа получается по следующему правилу:
1. отрицательное двоичное число записывается в прямом коде;
2. все двоичные разряды, кроме знакового, инвертируются (единицы заменяются нулями, а нули – единицами);
- к инвертированному числу прибавляется единица по правилам сложения двоичных чисел.
Таким образом, при алгебраическом сложении(алгебраическое сложение – это сложение чисел со знаками) двух двоичных чисел с использованием дополнительного кода, положительные слагаемые представляются в компьютере в прямом коде, а отрицательные – в дополнительном. Затем производится суммирование этих кодов, включая разряды знаков. При возникновении переноса из знакового разряда единица переноса отбрасывается, т.к. она вышла за пределы разрядной сетки. В результате получается алгебраическая сумма в прямом коде, если она положительна, и в дополнительном коде, если эта сумма получилась отрицательной.
Представление вещественных чисел. При решении конкретных физических, математических и других задач фигурируют как очень малые, так и очень большие числа. Диапазон изменения величин может при этом составлять от 10-30 до 10+30.
Представление чисел в естественной форме в виде записи целой и дробной части числа, отделенных друг от друга запятой, называется формой представления чисел с фиксированной запятой. Ясно, что занимать разряды для хранения нулей в конце числа или в начале после запятой крайне неэффективно. Поэтому для представления вещественных чисел в современных компьютерах применяется другая форма, которую принято называть форма представления вещественных чисел с плавающей запятой.
В этом формате разряды регистра разбиваются на два поля, имеющие название мантисса и порядок. К тому же используется нормализованная форма записи чисел,при которой у мантиссы старший разряд обязательно меньше 1, а порядок – целое положительное или отрицательное число:
А = ±m×К±p,
где m – мантисса числа, p – порядок числа (úmú < 1), К – основание системы счисления.
При записи числа с плавающей точкой выделяются разряды для хранения знака мантиссы, порядка и мантиссы, например (для простоты взято 4-х байтовое представление):
… | |||||||||||||||||
Зн. м | Смещенный порядок | Мантисса без старшей единицы |
Порядок числа запоминается увеличенным на 2k-1 - 1, где k – количество разрядов, отведенное для кодирования порядка. Такой порядок называется смещенным:
pм= p + (2k-1-1), где p – порядок числа, pм – машинный порядок.
Для 4-х байтового представления машинный порядок будет вычисляться по формуле : pм= p + (27-1) или pм= p + 127.
При таком способе представления отпадает необходимость кодирования знака порядка.
Т.к. при нормализованной форме записи вещественного числа в двоичной системе счисления первая цифра мантиссы у любого числа всегда 1, то отпадает необходимость хранить эту единицу. Поэтому мантисса запоминается без первой единицы. Она считается скрытым разрядом. Таким образом, при хранении мантиссы этой единицы нет, однако при аппаратном выполнении операций она, естественно учитывается.
Всякое десятичное число, прежде чем оно попадает в память компьютера, преобразуется по схеме:
- A10 Þ m×10p, мантисса и порядок числа при этом записываются в двоичной системе счисления.
- В полученном нормализованном двоичном числе мантисса и порядок заменяется прямым кодом, если числа положительны и дополнительным кодом, если они отрицательны.
- Полученные коды порядка и мантиссы помещаются в ячейки памяти компьютера.
Это преобразование осуществляется автоматически при вводе данных в компьютер. В процессе выполнения вычислений коды мантисс и порядка конкретных чисел извлекаются из ячеек памяти и направляются в арифметическое устройство, где над кодами по специальным правилам двоичной арифметики выполняются действия.