Кодирование информации Тема 1. Двоичное кодирование





























Представление целых чисел в компьютере.ppt
- Количество слайдов: 29
Кодирование информации Тема 1. Двоичное кодирование
Двоичное кодирование – это кодирование всех видов информации с помощью двух знаков (обычно 0 и 1). Передача электрических сигналов: U сигнал с помехами U сигнал с помехами 5 В « 1» 1 0 1 полезный « 0» сигнал время 2
Двоичное кодирование чис ла символы рисунки кодировщик 10101101110110101 звук • в такой форме можно закодировать все виды информации • нужны только устройства с двумя состояниями • практически нет ошибок при передаче • компьютеру легче обрабатывать данные • человеку сложно воспринимать двоичные коды 3
Кодирование информации Тема 2. Кодирование целых чисел
Целые беззнаковые числа Беззнаковые данные – не могут быть отрицательными. Байт (символ) память: 1 байт = 8 бит диапазон значений 0… 255, 0…FF 16 = 28 - 1 Си: unsigned char Паскаль: byte старший младший 7 6 5 4 3 2 1 0 биты 0 1 0 0 1 1 1 0 старший полубайт младший полубайт старшая цифра младшая цифра 416 E 16 10011102 = 4 E 16 = ‘N’
Пример 1. Для хранения целого числа без знака используется один байт. Записать представление числа 19. 1 шаг: Переведем число 19 из десятичной системы счисления в двоичную. 19 2 18 9 2 19 = 100112 1 8 4 2 1 4 2 2 0 2 1 2 0 0 0 1 2 шаг: Так как для представления числа в компьютере выделен 1 байт, то код числа должен содержать 8 знаков (8 бит). Поэтому впереди числа дописываем 3 незначащих нуля. 19 = 0 0 0 1 1
Задание. Записать представление чисел 78 и 115 в однобайтовом формате для компьютера 78 = 115 =
Целые беззнаковые числа Целое без знака память: 2 байта = 16 бит диапазон значений 0… 65535, 0…FFFF 16 = 216 -1 Си: unsigned int Паскаль: word 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 биты 0 1 0 0 1 1 0 1 0 старший байт младший байт 4 D 16 7 A 16 1001101011110102 = 4 D 7 A 16 Длинное целое без знака память: 4 байта = 32 бита диапазон значений 0…FFFF 16 = 232 -1 Си: unsigned long int Паскаль: dword
Пример 2. Для хранения целого числа без знака используется два байт. Записать представление числа 19. 1 шаг: Переведем число 19 из десятичной системы счисления в двоичную. 19 2 18 9 2 19 = 100112 1 8 4 2 1 4 2 2 0 2 1 2 0 0 0 1 2 шаг: Так как для представления числа в компьютере выделен 1 байт, то код числа должен содержать 16 знаков (16 бит). Поэтому впереди числа дописываем 11 незначащих нулей. 19 = 0 0 0 1 0 0 1 1
Задание. Записать представление чисел 234 и 400 в двухбайтовом формате для компьютера 234 = 400 =
Целые числа со знаком ? Сколько места требуется для хранения знака? Старший (знаковый) бит числа определяет его знак. Если он равен 0, число положительное, если 1, то отрицательное. Формат числа Диапазон в байтах Запись с порядком Обычная запись 1 – 27. . . 27– 1 – 128. . . 127 2 – 215. . . 215– 1 – 32768. . . 32767 4 – 231. . . 231– 1 – 2147483648. . . 2147483647
Целые числа со знаком Байт (символ) со знаком память: 1 байт = 8 бит диапазон значений: max 0 1 1 1 1 127 min 1 0 0 0 0 – 128 – 128 = – 27 … 127 = 28 – 1 Си: char Паскаль: byte можно работать с отрицательными числами уменьшился диапазон положительных чисел
Целые числа со знаком Слово со знаком память: 2 байта = 16 бит диапазон значений – 32768 … 32767 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Си: int Паскаль: integer Двойное слово со знаком память – 4 байта диапазон значений – 231 … 231 -1 Си: long int Паскаль: longint
! В компьютере применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код. Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1. Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Дополнительный код положительного числа совпадает с прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы. Например, в однобайтовом формате числа 27 и -27 имеют вид: Число Прямой Обратный Дополнительный код 27 00011011 -27 10011011 11100100 11100101
Целые числа со знаком ! Все целы числа со знаком хранятся в компьютере в дополнительном коде Например, 27 00011011 -27 11100101
Нахождение двоичного дополнительного кода 16 Задача: представить отрицательное число (–a) в двоичном дополнительном коде. Решение: 1 способ: 1. Перевести число a в двоичную систему. 2. Записать результат в разрядную сетку с нужным числом разрядов (старший «знаковый» бит заполняется 1). 3. Заменить все « 0» на « 1» (кроме старшего «знакового» бита). 4. Прибавить к полученному двоичному коду 1. Пример: (– a) = – 78, сетка 8 бит знаковый бит 5. 78 = 10011102 6. 1 0 1 1 0 0 1 0 = – 78 7. 1 0 1 1 0 0 0 1 8. 1 0 1 1 0 0 1 0
Нахождение двоичного дополнительного кода 17 2 способ: 1. Перевести число a– 1 в двоичную систему. 2. Записать результат в разрядную сетку с нужным числом разрядов. 3. Заменить все « 0» на « 1» и наоборот (инверсия). Пример: (– a) = – 78, сетка 8 бит 4. a – 1 = 77 = 10011012 5. 0 1 0 0 1 1 0 1 6. 1 0 1 1 0 0 1 0 знаковый бит
Задание. Записать представление чисел (-87) и (-106) в однобайтовом формате для компьютера -87 = -106 =
19 Задание 1. Запишите числа в обратном и дополнительном кодах (формат 1 байт) -9. 2. Найдите десятичные представления чисел, записанных в дополнительном коде 1 1111000. 3. Найдите десятичные представления чисел, записанных в обратном коде 1 1101000.
20 Сложение чисел ! Благодаря тому, что отрицательные числа кодируются в дополнительном коде, при сложении можно не обращать на знак слагаемых Пример: 5 + (– 9) = ? 5= 0 0 0 1 + – 9= 1 1 0 1 1 1 – 4= 1 1 1 0 0
21 Сложение чисел ! При сложение чисел с одинаковыми знаками может случиться ПЕРЕПОЛНЕНИЕ. Пример: 96 + 33 = 129 96= 0 1 1 0 0 0 + 33= 0 0 1 0 0 1 0 0 0 0 1 =1 Бит переноса (от англ. Carry –перенос)
22 Сложение чисел Пример: (-96) + (-33) = -129 -96= 1 0 1 0 0 0 + -33= 1 1 0 1 1 1 0 1 1 =-1
23 Целые числа со знаком ! «-1» – это такое число, которое при сложении с 1 даст 0. -1 не помещается в 1 байт! 1 байт: 11112 + 1 = 1 0000 2 2 байта: 111111112 + 1 = 1 00000000 2 -1
24 Двоичный дополнительный код Проверка: 78 + (– 78) = ? 78 = 0 1 0 0 1 1 1 0 + – 78 = 1 0 1 1 0 0 1 0
25 Ошибки Переполнение разрядной сетки: в результате сложения больших положительных чисел получается отрицательное (перенос в знаковый бит). 7 6 5 4 3 2 1 0 0 0 64 + 0 1 0 0 0 64 1 0 0 – 128
26 Ошибки Перенос: при сложении больших (по модулю) отрицательных чисел получается положительное (перенос за границы разрядной сетки). 7 6 5 4 3 2 1 0 1 0 0 – 128 + 1 0 0 – 128 1 0 0 0 0 в специальный бит переноса
27 Умножение и деление чисел Пример: 5 * 9 = 0 0 1 0 0 0 1 0 0 1 + 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1
Нахождение двоичного дополнительного кода 28 Компьютерное умножение целых чисел состоит из следующих элементарных действий: • вычисление очередного произведения в зависимости от младшего бита второго сомножителя: оно равно нулю (если этот бит нулевой) или первому множителю (если бит равен единице); • сдвиг содержимого сумматора, накапливающего сумму, влево на 1 разряд; • сложение содержимого сумматора с очередным произведением; • сдвиг второго сомножителя вправо на 1 разряд (при этом следующий бит попадет в младший разряд).
29 Умножение и деление чисел Пример: 5 * (-9) = 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 + 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 =- 45

