Представление чисел в компьютере Представление чисел в формате с фиксированной запятой (точкой) В формате с фиксированной запятой в памяти компьютера хранятся целые числа Недостаток: конечный диапазон представления величин, недостаточный для решения математических, физических экономических и других задач, в которых используются как очень малые, так и очень большие числа. Целые числа без знака Занимают в памяти компьютера 1 или 2 байта и принимают значения в однобайтовом формате от 000000002 до 111111112, а в двухбайтовом формате от 00000000 000000002 до 11111111 111111112 Формат числа в байтах 1 2 Обычная запись 0 … 255 0 … 65535 Примеры Число 7210 в однобайтовом формате 0 1 0 0 1 0 0 0 Число 7210 в двухбайтовом формате 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 Целые числа со знаком Занимают в памяти компьютера 1, 2 или 4 байта. При этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «+» кодируется нулем, а «-» - единицей. Формат числа в байтах Обычная запись 1 2 4 -128… 127 -32 768 … 32 767 -2 147 483 648 … 2 147 483 647 Формы записи целых чисел со знаком Прямой код Обратный код Дополнительный код Положительные числа В прямом, обратном и дополнительном кодах изображаются одинаково – двоичными кодами с цифрой 0 в знаковом разряде Число 110=12 00000001 (в однобайтовом формате) 0000000000000001 (в двухбайтовом формате) Число 12710=11111112 01111111 (в однобайтовом формате) 0000000001111111 (в двухбайтовом формате) Число 100010=11111010002 00000011111010002 (в двухбайтовом формате) Отрицательные числа 1.Прямой код – в знаковый разряд помещается цифра 1. Прямой код числа -110 10000001 (в однобайтовом формате) Прямой код числа -12710 11111111 (в однобайтовом формате) 2.Обратный код – получается инвертированием всех цифр двоичного кода, исключая разряд знака. Обратный код числа -1: 11111110 Обратный код числа -127: 10000000 3.Дополнительный код – получается из обратного прибавлением единицы к его младшему разряду. Дополнительный код числа -1: 11111111 Дополнительный числа -127: 10000001 Обычно отрицательные десятичные числа при вводе в компьютер автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа. Задание Записать дополнительный код отрицательного числа -2010 для двухбайтного компьютерного представления. Решение 201010=111110110102 Получим прямой код: 1000011111011010 Обратный код: 1111100000100101 Дополнительный код: 1111100000100110 1111100000100101 + 1 1111100000100110 Задание Заполнить таблицу, записав отрицательные числа в прямом, обратном и дополнительном кодах в 16разрядном представлении Десятичные числа -10 -100 -1000 -10000 Прямой код Обратный код Дополнительный код Задание Заполнить таблицу, записав отрицательные числа в прямом, обратном и дополнительном кодах в 16разрядном представлении Десятичные числа Прямой код Обратный код Дополнительный код -10 1000000000001010 1111111111110101 1111111111110110 -100 1000000001100100 1111111110011011 1111111110011100 -1000 1000001111101000 1111110000010111 1111110000011000 -10000 1010011100010000 1101100011101111 1101100011110000