К.Ю. Поляков, Е.А. Ерёмин, 2013 1 Компьютерная арифметика § 26. Особенности представления чисел в компьютереОсобенности представления чисел в компьютере.

Презентация:



Advertisements
Похожие презентации
К. Поляков, Компьютерная арифметика 1.Особенности представления чисел в компьютереОсобенности представления чисел в компьютере.
Advertisements

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 26. Особенности представления чисел в компьютере § 27. Хранение в памяти.
Представление чисел в компьютере. Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в оперативной памяти в виде.
Представление чисел в компьютере 1.Представление целых положительных чисел. 2.Представление целых отрицательных чисел. 3.Особенности реализации арифметических.
«Кодирование числовой информации» Урок – лекция 10 класс Потапова Алла Александровна учитель информатики МОУ СОШ 7 городского.
Целые числа. Целые числа без знака (только положительные) Целые числа со знаком (положительные и отрицательные) Для хранения чисел в памяти отводится.
Представление чисел в компьютере автор: Хайманова Т.Я. май 2008 г.
К.Ю. Поляков, Е.А. Ерёмин, Системы счисления § 12. Восьмеричная система счисленияВосьмеричная система счисления § 13. Шестнадцатеричная система.
Представление информации в памяти компьютера. Кодирование символов 1 символ – 1 байт (8 бит) Найти количество различных символов, закодированных байтами.
Представление чисел в компьютере. Представление чисел в формате с фиксированной запятой Этот формат используется для хранения целых чисел. Каждому разряду.
«Двоичная арифметика, алгоритм сложения». Учебные вопросы: 1. Правила недесятичной арифметики. 2. Способы представления чисел в разрядной сетке ЭВМ.
Представление чисел в компьютере. Правило 1: данные (и программы) в памяти компьютера хранятся в двоичном виде, т. е. в виде цепочек единиц и нулей. Современный.
Белорусский Государственный университет; ММФ; Кафедра веб-технологий и компьютерного моделирования; Расолько Г.А. Арифметика ЭВМ Системы счисления.
Представление числовой информации Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в оперативной памяти в виде.
ДИСКРЕТНЫЕ МОДЕЛИ ДАННЫХ В КОМПЬЮТЕРЕ. ПРЕДСТАВЛЕНИЕ ЧИСЕЛ 10 класс.
Представление чисел в компьютере 1. Представление чисел в формате с фиксированной запятой 2. Представление чисел в формате с плавающей запятой.
Электронная энциклопедия. Содержание Архитектура ПК Системы счисления.
Кодирование информации Представление чисел в компьютере.
Представление чисел в компьютере Терехова Н.А.. Представление чисел в формате с фиксированной запятой.
Д ИСКРЕТНЫЕ МОДЕЛИ ДАННЫХ В КОМПЬЮТЕРЕ. П РЕДСТАВЛЕНИЕ ЧИСЕЛ. 10 класс Презентация для 10 класса.
Транксрипт:

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 26. Особенности представления чисел в компьютере Особенности представления чисел в компьютере § 27. Хранение в памяти целых чисел Хранение в памяти целых чисел § 28. Операции с целыми числами Операции с целыми числами § 29. Хранение в памяти вещественных чисел Хранение в памяти вещественных чисел § 30. Операции с вещественными числами Операции с вещественными числами

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 26. Особенности представления чисел в компьютере 2

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Предельные значения чисел 3 В математике нет предельных значений! В компьютере – конечное число деталей, ограниченное количество разрядов. Какой диапазон? ? 10000?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Предельные значения чисел 4 система счисления с основанием B K разрядов Переполнение разрядной сетки это ситуация, когда число, которое требуется сохранить, не умещается в имеющемся количестве разрядов вычислительного устройства.

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Вещественные числа 5 система счисления с основанием B F разрядов в дробной части Какой диапазон? ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Неточность представления 6 Не все вещественные числа могут быть представлены в компьютере точно ! ! 0, ,3211 1,3212 1,3214

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Сравнение вещественных чисел 7 хранится неточно! При сравнении вещественных чисел желательно избегать операции «равно» ! ! неточный результат! допустимая погрешность (10 -6 )

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Дискретность 8 1. Целые числа дискретны. 2. Вещественные числа непрерывны. 3. Компьютер работает только с дискретными данными. 4. При дискретизации может происходить потеря информации (искажение данных). 5. Большинство трудностей связано с кодированием вещественных чисел. Для хранения вещественных чисел нужна дискретизация ! !

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 27. Хранение в памяти целых чисел 9

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа без знака (unsigned) = Беззнаковые данные – не могут быть отрицательными биты младший старший старший полубайт старшая цифра младший полубайт младшая цифра 4 16 E = 4E 16 = N

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа без знака 11 01…127128… …7F …FF … … C0 16 FF FF 16 C

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа без знака: диапазон 12 KX min X max типы данных byte (Паскаль) unsigned char (Си) word (Паскаль) unsigned short (Си) cardinal (Delphi) unsigned int (Си) unsigned long long (Си++)

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа со знаком 13 Сколько места требуется для хранения знака? ? Старший (знаковый) бит числа определяет его знак. Если он равен 0, число положительное, если 1, то отрицательное. Прямой код: 78 = – 78 = – < 0< 0 < 0< 0 операции с положительными и отрицательными числами выполняются по-разному!

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа со знаком 14 Идея: «– 1» должно быть представлено так, чтобы при сложении с числом «1» получить 0. Как кодируется «-1»? ? Для 8-битных чисел: код числа «–X» равен двоичному коду числа 256 – X (дополнение до 256). При K-битном кодировании дополнительный код числа «–X» равен двоичному коду числа 2 K – X (дополнение до 2 K ). !

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Как построить дополнительный код? 15 Алгоритм А0: перевести число 2 K – X в двоичную систему счисления. для вычислений требуется K+1 разряд Алгоритм А1: 1)перевести число X в двоичную систему счисления; 2)построить обратный код, выполнив инверсию всех битов (заменить 0 на 1 и наоборот); 3)к результату добавить 1. Алгоритм А1: 1)перевести число X в двоичную систему счисления; 2)построить обратный код, выполнив инверсию всех битов (заменить 0 на 1 и наоборот); 3)к результату добавить = инверсия +1+1

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Как построить дополнительный код? 16 Алгоритм А2: 1)перевести число X-1 в двоичную систему счисления; 2)выполнить инверсию всех битов. Алгоритм А2: 1)перевести число X-1 в двоичную систему счисления; 2)выполнить инверсию всех битов = 77 = инверсия Алгоритм А3: 1)перевести число X в двоичную систему счисления; 2)выполнить инверсию всех старших битов числа, кроме младшей единицы и нулей после нее. Алгоритм А3: 1)перевести число X в двоичную систему счисления; 2)выполнить инверсию всех старших битов числа, кроме младшей единицы и нулей после нее. 78 = инверсия

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа со знаком 17 –128–127…–1 0… …FF …7F … … F С FF – 128 – 1– – – – 128 – F 16 С FF

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Целые числа co знаком: диапазон 18 KX min X max типы данных 8– shortInt (Delphi) char (Си) 16– smallInt (Delphi) short (Си) 32 – integer (Delphi) int (Си) 64 – – 1 int64 (Delphi) long long (Си)

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 28. Операции с целыми числами 19

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Сложение и вычитание 20 Операции с положительными и отрицательными числами выполняются по одинаковым алгоритмам! ! Вычитание = сложение с дополнительным кодом вычитаемого! !

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Переполнение 21 знаковый бит дополнительный бит Если бит переноса не совпадает с битом S, произошло переполнение и результат неверный. ! S S S S

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Умножение Умножение выполняется с помощью сложения и сдвига. ! × ×

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Поразрядные логические операции 23 Поразрядные операции выполняются с отдельными битами числа и не влияют на остальные. Сложение – это поразрядная операция? ? регистр Операция «НЕ» (инверсия, not): R not R

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Логическая операция «И» ( and, & ) 24 DMD and M данные маска Маска – константа, которая определяет область применения логической операции к битам многоразрядного числа. С помощью операции «И» можно сбросить (установить в ноль) биты, для которых маска равна 0! ! D D and M M AA 16 6С AA 16 and 6C 16 = ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Логическая операция «ИЛИ» ( or, | ) 25 DMD or M С помощью операции «ИЛИ» можно записать единицу в биты, для которых маска равна 1! ! D D or M M AA 16 6С 16 EE AA 16 or 6C 16 = ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Операция «исключающее ИЛИ» ( xor, ^ ) 26 DMD xor M С помощью операции «исключающее ИЛИ» можно инвертировать биты, для которых маска равна 1! ! D D xor M M AA 16 6С 16 C AA 16 xor 6C 16 = ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Шифрование с помощью xor 27 Идея: (A xor B) xor B = Операция «исключающее ИЛИ» обратима, то есть ее повторное применение восстанавливает исходное значение! ! A Текст: 2*2=4 Коды символов: '2' = = '*' = 2A 16 = '=' = 3D 16 = '4' = =

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Шифрование с помощью xor 28 Исходный текст: 2*2=4 '2' xor = '*' 2A 16 xor = '=' 3D 16 xor = '4' xor = '%' 3D 16 '=' 2A 16 '*' '#' Маска: 23 = = Зашифрованный текст: %=%*# Расшифровка: '%' xor = '=' 3D 16 xor = '*' 2A 16 xor = '#' xor = '2' 2A 16 '*' 3D 16 '=' '4'

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Логический сдвиг Влево: бит переноса С Вправо: С 0 Си: Паскаль: N = N << 1; N = N >> 1; N = N << 1; N = N >> 1; N := N shl 1; N := N shr 1; N := N shl 1; N := N shr 1; shift left shift right

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Логический сдвиг Влево: Вправо: Если число нечётное? ? Логический сдвиг влево (вправо) – это быстрый способ умножения (деления без остатка) положительного числа на 2. Если число отрицательное? ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Арифметический сдвиг (вправо) 31 –12 Если число нечётное? ? С – 6 Примеры: –20 –15 –11 –3–3 –1 –10 –8 –6 –2 –1 Арифметический сдвиг вправо – деление на 2 нацело с округлением «вниз» (к ближайшему меньшему целому).

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Циклический сдвиг Влево: Вправо: Циклический сдвиг предназначен для последовательного просмотра битов без потери данных. !

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Пример 33 Задача: в целой переменной N (32 бита) закодирована информация о цвете пикселя в RGB: Записать в переменные R, G, B составляющие цвета. Вариант 1: 1. Обнулить все биты, кроме G. Маска для выделения G: 0000FF Сдвинуть вправо так, чтобы число G передвинулось в младший байт. 0RGB Си: G =(N & 0xFF00) >> 8; Паскаль: G:=(N and $FF00) shr 8;

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Пример 34 Вариант 2: 1. Сдвинуть вправо так, чтобы число G передвинулось в младший байт. 2. Обнулить все биты, кроме G. Маска для выделения G: FF 16 0RGB Си: G =(N >> 8) & 0xFF; Паскаль: G:=(N shr 8) and $FF; Как решить, используя только сдвиги? ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Пример 35 0RGB Си: R =B =R =B = R =B =R =B = Паскаль: R:= B:= R:= B:=

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 29. Хранение в памяти вещественных чисел 36

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Хранение вещественных чисел 37 С фиксированной запятой (в первых ЭВМ): целая частьдробная часть для больших и маленьких чисел нужно масштабирование 0, ,0 С плавающей запятой (автоматическое масштабирование): знакпорядок P значащая часть Z положение запятой цифры числа 1,2345· ,2345·10 17

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Хранение вещественных чисел 38 Теоретически оптимальный вариант (целая часть = 0): 0, = 0,12345· ,345 = 0,12345·10 2 X 10 всегда 0 один разряд расходуется впустую! Экономный вариант (целая часть от 1 до B): основание системы счисления X 10 0, = 1,2345· ,345 = 1,2345·10 1 повышение точности при конечном числе разрядов

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Нормализация 39 Нормализованная форма: значащая часть Z удовлетворяет условию 1 Z < B, где B – основание системы счисления (стандарт IEEE 754). Пример: 17,25 = 10001,01 2 = 1, ·2 4 5,375 = 7,625 = 27,875 = 13,5 = 0,125 = всегда 1, её можно не хранить в памяти!

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Число обычной точности (single) ,25 = ,01 2 = -1, ·2 4 знакпорядокзначащая часть single: 4 байта = 32 бита мантисса = дробная часть Z порядок со смещением знак p = = 131 = С18A000 0 для single

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Диапазон вещественных чисел 41 типдиапазон число десятичных значащих цифр размер (байт) single1,4· – 3,4· double4,9· – 1,8· extended3,6· – 1,2· Extended – тип для вычислений в сопроцессоре, единица в значащей части не скрывается. Single, double – только для хранения.

К.Ю. Поляков, Е.А. Ерёмин, Компьютерная арифметика § 30. Операции с вещественными числами 42

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Сложение и вычитание 43 1)порядки выравниваются до большего 2)значащие части складываются (или вычитаются) 3)результат нормализуется Как сложить два числа с плавающей запятой? ! 1,2345·10 – 5 + 1,2345·10 5 = ? Пример: 7,25 = 111,01 2 = 1, ·2 2 1,75 = 1,11 2 = 1,11 2 ·2 0 1,75 = 0, ·2 2 1, ,011120, , ,01 2 ·2 2 = 1,001 2 ·2 3 Почему порядки выравнивают до большего? ?

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Умножение и деление 44 Как умножить два числа с плавающей запятой? ! 1,2345·10 – 5 · 1,2345·10 5 = ? 1)значащие части умножаются (или делятся) 2)порядки складываются (или вычитаются) 3)результат нормализуется Пример: 1,75 = 1,11 2 = 1,11 2 ·2 0 6 = = 1,1 2 ·2 2 1,11 2 ·1,1 2 = 10, ,101 2 ·2 2 = 1, ·2 3 Надо ли выравнивать порядки? ? = = 2

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ 163, г. Санкт-Петербург ЕРЕМИН Евгений Александрович к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь

Компьютерная арифметика, 10 класс К.Ю. Поляков, Е.А. Ерёмин, Источники иллюстраций авторские материалы