ЦЕЛЫЕ ЧИСЛА В ПАМЯТИ КОМПЬЮТЕРА Целые числа в нашем мире 1. МНОЖЕСТВО ЦЕЛЫХ ЧИСЕЛ БЕСКОНЕЧНО 2. МНОЖЕСТВО ВЕЩЕСТВЕННЫХ ЧИСЕЛ БЕСКОНЕЧНО Целые числа в компьютере ГРАНИЦЫ МНОЖЕСТВА ЦЕЛЫХ ЧИСЕЛ ЗАВИСЯТ ОТ РАЗМЕРА ВЫДЕЛЯЕМОЙ ЯЧЕЙКИ ПАМЯТИ ПОД ЦЕЛОЕ ЧИСЛО, А ТАКЖЕ ОТ ФОРМАТА: СО ЗНАКОМ ИЛИ БЕЗ ЗНАКА. Зависимость границ множества целых чисел от размера Кол-во ячеек памяти Возможные числа для Всего чисел выделенной ячейки памяти для хранения в 10 с.с. 1 0, 1 2 формата «без знака» 2 0,1,2,3 4 3 0,1,2,3,4,5,6,7 8 … … … 8 0 …28 -1(255) 256 0…216-1 65536 … 16 … Задание: Определить границы множества целых чисел для: 1. 3-байтной ячейки памяти 2. 4-байтной ячейки памяти . Шаг последовательности ДЛЯ ЦЕЛЫХ ЧИСЕЛ РАВНЯЕТСЯ ЕДИНИЦЕ (ТАК ЖЕ, КАК И В МАТЕМАТИКЕ) Целые числа в компьютере – дискретное, ограниченное и конечное множество Алгоритм внутреннего представления целого положительного числа N, хранящегося в k-разрядном машинном слове: 1. Перевести число N в двоичную СС 2. Полученный результат дополнить слева незначащими нулями до k разрядов. Пример 1. Получить внутреннее представление целого положительного числа 1607 в 2-х байтовой ячейке. Решение 1. N= 160710=110010001112 2. Внутреннее представление числа: 0000 0110 0100 0111 3. Шестнадцатеричная форма внутреннего представления числа: 0647 задание 1. Получить внутреннее представление числа 209 в 2-байтной ячейке памяти. 2. Записать шестнадцатеричную форму внутреннего представления числа 209. Зависимость границ множества целых чисел от размера выделенной ячейки памяти для формата «со знаком» Кол-во ячеек памяти Возможные числа для хранения в 10 с.с. Всего чисел 1 -1, 0 2 2 -2, -1, 0, 1 4 3 -4, -3, -2, -1, 0,1,2,3 8 … … … 8 -128, -127, …, 0, 1 …, 127 256 -215, …, 0, …215-1 65536 … 16 … Задание Определите диапазон чисел для хранения: 1. В 3-байтовой ячейках памяти в формате «со знаком». 2. В 4-байтовой ячейках памяти в формате «со знаком». Алгоритм внутреннего представления целого отрицательного числа N, хранящегося в k-разрядном машинном слове: 1. 2. 3. Получить внутреннее представление положительного числа N (прямой код). Получить обратный код этого числа заменой 0 на 1 и 1 на 0. К полученному числу добавить 1 (дополнительный код). Пример 2. Запишите дополнительный код отрицательного числа - 2002 для 16-разрядного компьютерного представления. Прямой код модуля |-200210| 0000011 1110100102 Обратный код Инвертирование 11111000001011012 Прибавление единицы 11111000001011012 + 00000000000000012 Дополнительный код 11111000001011102