Кодирование числовой информации Цель урока: научиться представлять целые числа в памяти компьютера; научиться представлять вещественные числа в памяти компьютера. © Мульганова Е. Б. 2009-2010 Ответьте на вопросы • • • • Как кодируется текстовая информация? Как кодируется графическая информация? Как кодируется звуковая информация? Как кодируется числовая информация? Кодирование целых чисел Для работы с числами человек использует в основном две формы для их записи: Естественная 12000000 Экспоненциальная 12•106 Кодирование целых чисел 123, Числа в компьютере представлены в Все целые числа в компьютере двоичной системе счисления. разделяются на числа без знака (только Запятая в целых числах фиксируется положительные) и со знаком строго в конце и и остается строго (положительные отрицательные). Для фиксированной. хранения чисел в памяти отводится определенное количество разрядов, в Поэтому этот формат называется совокупности представляющих собой(или форматом с фиксированной точкой запятой). k-разрядную сетку. Кодирование целых чисел Обычно целые числа занимают в памяти ПК 1, 2 или 4 байта. Поэтому легко вычислить диапазон чисел, которые можно сохранить в такой разрядной сетке: I N=2 N – количество чисел I – количество информации необходимое для кодирования одного числа Кодирование целых чисел Знак положительного числа «+» кодируется нулем, а знак отрицательного числа «-» кодируется единицей. Число в разрядной сетке располагается так, что его самый младший двоичный разряд записывается в крайний правый бит. Если количество разрядов в разрядной сетке превышает количество разрядов числа, оставшиеся разряды заполняются нулями. Пример 1 Представить число 2110 в однобайтовой разрядной сетке. 1. Переведем число 2110 в двоичную систему счисления. 2110 = 101012. 2. Нарисуем восьмиразрядную сетку (1 байт = 8 бит). 7 6 5 4 3 2 1 0 Пример 1 3. Впишем число, начиная с младшего разряда. 1 0 1 0 1 4. Заполним оставшиеся разряды нулями. 0 0 0 1 0 1 0 1 Пример 2 Представить число +2110 и -2110 в двухбайтовой разрядной сетке. Представление положительного числа: 1. Переведем модуль числа -2110 в двоичную систему счисления. 2110 = 101012. 2. Нарисуем шестнадцатиразрядную сетку (2 байт = 16 бит). Пример 2 3. Получим внутренне представление модуля числа. 0000 0000 0001 0101 - прямой код числа. 4. Найдем обратный код числа, заменив в прямом коде нули на единицы, а единицы на нули: 111111111110 1010 - обратный код. Пример 2 5. Найдем дополнительный код числа, прибавив к обратному коду единицу: 1111 1111 1110 1010 +________________1 1111 1111 1110 1011 - дополнительный код. 6. Впишем дополнительный код в разрядную сетку. Код знака Кодирование вещественных чисел Недостатком представления чисел в формате с фиксированной запятой является конечный диапазон представления величин Поэтому для преставления вещественных чисел (конечных и бесконечных десятичных дробей) используется другой формат – формат с плавающей точкой (запятой). Кодирование вещественных чисел Формат чисел с плавающей точкой основывается на экспоненциальной форме записи чисел, в которой любое число может быть представлено в следующей форме: А=m·qn m – мантисса числа; q – основание системы; n – порядок числа. Кодирование вещественных чисел Число в форме с плавающей точкой занимает в памяти компьютера четыре (число обычной точности) байта или восемь (число двойной точности) байта. Для записи чисел в разрядной сетке выделяются разряды для знака порядка и мантиссы, для порядка и для мантиссы. Пример 3 Представить число 250,187510 в формате с плавающей точкой в 4-байтовой разрядной сетке: 1. Переведем число в двоичную систему счисления с 23 значащими цифрами: 250,187510 = 11111010,0011000000000002; 2. Нормализуем мантиссу: 11111010,001100000000000 = 0,111110100011 00000000000·101000; Пример 3 3. 0,11111010001100000000000 ∙ 101000; (мантисса положительная) (порядок положительный) 4. Запишем число в 32-разрядной сетке: