Представление чисел в компьютере Терехова Н.А.
Представление чисел в формате с фиксированной запятой
Целые числа могут представляться в компьютере со знаком или без знака. Целые числа хранятся в формате с фиксированной запятой, которая «находится» вне разрядной сетки справа после младшего разряда. Целые числа без знака занимают в памяти один или два байта. От того какой формат (однобайтовый или двубайтовый ) зависит диапазон, в котором может находиться данное число
А = 1* *2 6 +1*2 5 +1* *2 3 +1*2 1 +1*2 0 = 1* =255 А=2 n -1 – максимальное значение целого неотрицательного числа
Диапазоны значений целых чисел без знака Формат числа в байтах Запись с порядком Обычная запись … 2 8 – … …65535
Целые числа со знаком занимают в памяти один или два или 4 байта. Самый левый (старший) разряд содержит информацию о знаке числа. Знак + «плюс» кодируется нулем, Знак - «минус» кодируется единицей.
=
Диапазоны значений целых чисел со знаком Формат числа в байтах Запись с порядкомОбычная запись … 2 7 – … 2 15 – … 2 31 – … … …
А = 2 N -1 –1, максимальное значение целого числа со знаком для n-разрядного представления A = 2 15 –1 = 32767
Формат записи в привычном виде «знак – величина» называется прямым кодом числа. Прямой код числа используется для представления в ПК положительных чисел.
Сравните максимальные значения знаковых и без знаковых представлений чисел: 127 и 255 у 8 разрядных представлений (на число 1 байт) и у 16 раз-х представлений (на число 2 байта). Максимальное значение знакового числа почти в 2 раза меньше, чем у без- знакового числа.
Алгоритм представления в компьютере целых положительных чисел: 1) Целое положительное число, входящее в диапазон допустимых значений того или иного типа переводится в 2-ю систему счисления. 2) Двоичное число дополняется если это необходимо нулями слева до соответствующего числа разрядов (8 разрядного, 16-го, 32-го)
Пример 1 Запишите число 23 в 8 разрядном представлении и –23 в 16 разрядном представлении.
Для записи отрицательных чисел, используется дополнительный код. Представление чисел в виде дополнительного кода используется для замены операции вычитания на операцию сложения, что существенно упрощает работу процессора и увеличивает его быстродействие.
Алгоритм записи дополнительного кода отрицательного числа: 1)Модуль числа записать в прямом коде в n двоичных разрядах. 2)Получить обратный код числа, для этого значения всех битов инвертировать (1- заменить на 0, 0 - на 1) 3)К полученному обратному коду прибавить 1.
Пример 2. Записать дополнительный код числа –105 для 8 и 16 разрядной сетки.
Отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа.
Для получения десятичного значения отрицательного числа надо преобразовать число записанное в дополнительном коде. Алгоритм : 1)Инвертировать дополнительный код 2)Прибавить к полученному числу 1 3)Перевести полученное значение в 10-ю систему счисления и перед полученной записью поставить знак «минус»
Пример 3. Получить десятичное представление числа по его дополнительному коду
Решение: 1.) Инвертируем дополнительный код Получим – обратный код 2) Прибавим к полученному числу 1. Получим число ) Переведем полученную запись числа из двоичной в 10-ю форму. Получим число ) Перед полученным числом поставим знак «-» Ответ: -105
Пример 4. Получить дополнительный код десятичного числа – 105.
Решение: 1)Модуль числа записать в прямом коде в n двоичных разрядах. 105= ) Получить обратный код числа. Получим ) К полученному обратному коду прибавить 1. Получим Ответ: дополнительный код числа –105 равен
Пример 5 Выполнить арифметические действия 3 – 10 (числа записаны в 10-с.с.) в 16 разрядном компьютерном представлении.
–доп. код числа –доп.код числа -7
Недостаток представления чисел с фиксированной запятой – конечный диапазон представления величин, недостаточный для решения математических, физических, экономических задач, в которых используются как очень малые так и очень большие числа.