Similar presentations:
Представление информации в памяти компьютера
1. Представление информации в памяти компьютера
2. Представление чисел в памяти компьютера
Для представления информации в памяти ЭВМ(как числовой, так и не числовой)
используется двоичный способ кодирования.
Элементарная ячейка памяти ЭВМ имеет длину
8 бит (байт). Каждый байт имеет свой номер
(его называют адресом).
Наибольшую последовательность бит, которую
ЭВМ может обрабатывать как единое целое,
называют машинным словом.
3. Нумерация бит в двухбайтовом машинном слове
Бит №15 считается старшим,бит №0 – младшим.
Длина машинного слова зависит от разрядности
процессора и может быть равной 16, 32 битам и
т.д.
4. Представление текстовой информации в памяти компьютера
Символы текста (буквы, цифры, знаки) кодируются комбинациямииз нулей и единиц. Каждому символу, который можно
использовать в тексте, поставлен в соответствие двоичный код.
Используя код из 1 бита, можно закодировать всего 2 разных
символа.
Двухбитовых комбинаций может быть 4 (00; 01, 10, 11) т. е. 22.
Трехбитовых комбинаций – 8 (23).
Для кодирования 32 (25) различных символов достаточно 5 бит.
Этот код использовался в работе телеграфа в 20-е годы ХХ века,
вместо знаков препинания ставились ТЧК и ЗПТ.
Используя 7 бит, можно закодировать 128 символов (двоичный
семибитовый код обмена информацией КОИ-7).
5. Представление текстовой информации в памяти компьютера
Оптимальное количество символов, которыеиспользуются при наборе различных текстов,
примерно 200 (буквы латинские и русские,
заглавные и строчные, знаки препинания,
цифры, математические знаки, элементы
псевдографики).
В 2-ой с.с.столько символов может быть
закодировано последовательностью из 8 бит
(28=256), т.е. 1 байтом.
6. Представление текстовой информации в памяти компьютера
Самая известная 8-битная кодировка – это таблицаASCII (American Standard Coding for Information
Interchange - стандартный американский код для
обмена информацией).
Она состоит из 2-х частей: основная, одинаковая во всем
мире (десятичные коды 0-127 – это управляющие
коды, латинские буквы, знаки препинания, цифры) и
расширенная (коды 128-255 – это буквы
национального алфавита, символы псевдографики).
Первые 32 кода – это управляющие символы: возврат
каретки, табуляция, отмена операции и т.п.
7. Представление текстовой информации в памяти компьютера
Помимо восьмиразрядной системы кодирования символьной(текстовой) информации разработана система
шестнадцатиразрядного кодирования символов, которая
получила название универсальной, UNICODE.
Такая система позволяет закодировать 216 = 65 536 различных
символов, в том числе практически все алфавиты языков нашей
планеты.
Расчет объема текстовой информации сводится к вычислению
произведения количества символов в тексте на число разрядов
двоичного кода, необходимого для кодирования одного символа.
8. Представление чисел в памяти компьютера
Смешанная двоично-десятичная «системасчисления»
Каждый десятичный знак хранится в полубайте (4 бита).
Десятичные цифры от 0 до 9 представляются
двоичными числами от 0000 до 1001.
Например, упакованный десятичный формат для
хранения целых чисел с 18-ю значащими цифрами
занимает в памяти 10 байт (старший из которых
знаковый), использует двоично-десятичную систему
кодирования.
9. Представление чисел в памяти компьютера
Формат с фиксированной запятойИспользуется для хранения целых чисел
15
14 ……………………………….0
Знак
Цифровые разряды числа
1 бит
15 бит
Старший бит (№15) может считаться знаковым. При
этом если в нем хранится 0, то это +,
если 1, то это – .
Цифровые разряды числа хранятся в дополнительном
коде (ДК).
10.
Представление чисел в памяти компьютера(формат с фиксированной запятой)
Дополнительный код (ДК)
Используется для хранения отрицательных целых чисел и
позволяет выполнять вычитание через сложение.
Понятие дополнительного кода существует в любой системе
счисления.
ДК получается путем вычитания данного отрицательного
числа из минимального числа, в котором разрядов на
один больше.
Рассмотрим принцип использования дополнительного кода
на примере десятичной с.с.
11. Принцип работы дополнительного кода на примере 10 с.с.
Пусть необходимо вычислить: 8810 – 6410Такая привычная нам запись чисел - это прямой код (ПК) чисел.
Выполним вычитание через сложение чисел в ДК.
1) Переведем числа в ДК. Для числа 88 ДК совпадает с ПК.
Так для всех чисел, которые больше 0.
Для числа -64 (оно меньше 0) вычтем 64 из минимального
трехразрядного числа (т.к. в числе 64 два разряда, то это 100):
100 – 64 = 36 – это ДК числа 64.
2) Теперь сложим ДК чисел: 88+36 = 124.
Если отбросить старший разряд, то получится 24, что
соответствует результату вычитания.
12. Представление чисел в памяти компьютера (формат с фиксированной запятой)
ДК для отрицательных двоичных чиселполучается проще. Нужно просматривать
запись двоичного кода справа налево и до
первой попавшейся единицы включительно
оставлять разряды без изменения. После этой
единицы все 0 заменяем на 1, а 1 на 0.
13.
Представление чисел в памяти компьютера(формат с фиксированной запятой)
Пример 1. Записать число -40(10) в формате компьютера как целое со знаком.
Разрядность формата – 16 бит.
Решение.
1) Переводим 40(10) в двоичную систему счисления:
40(10) = 101000(2)
2) Получаем ПК числа в компьютерном формате. Для этого дополняем
двоичную запись числа слева нулями так, чтобы стало 16 разрядов:
0000 0000 0010 1000
3) Получаем ДК, просматривая ПК справа налево
ПК: 0000 0000 0010 1000
ДК: 1111 1111 1101 1000
Это двоичная запись компьютерного представления числа -4010 в формате
компьютера с фиксированной запятой разрядностью 16 бит.
Для более компактной записи используют шестнадцатеричный код: FFD8(16)
14. Представление чисел в памяти компьютера (формат с фиксированной запятой)
Пример 2. Записать число 40(10) в формате компьютера как целое сознаком. Разрядность формата – 16 бит.
Решение.
1) Переводим 40(10) в двоичную систему счисления:
40(10) = 101000(2)
2) Получаем ПК числа в компьютерном формате. Для этого дополняем
двоичную запись числа слева нулями так, чтобы стало 16 разрядов:
0000 0000 0010 1000
Полученный ПК совпадает с ДК, так как число положительное.
Поэтому эта двоичная запись и есть компьютерное представление
числа 4010 в формате компьютера с фиксированной запятой
разрядностью 16 бит.
Для более компактной записи используют шестнадцатеричный код:
0028(16)
Здесь незначащие нули опускать нельзя, так как они хранятся в
памяти компьютера.
15. Представление чисел в памяти компьютера (формат с фиксированной запятой)
Другой способ получения ДК – это получить обратный(инверсный) код (ОК), а затем прибавить к нему 1.
Пример 3. Запишем ДК числа (–38), интерпретируя его
как величину в формате с фиксированной запятой
разрядностью 32 бита:
1) ПК числа 38:
0000 0000 0000 0000 0000 0000 0010 0110;
2) ОК числа -38 (здесь 0 заменён на 1, а 1 на 0):
1111 1111 1111 1111 1111 1111 1101 1001;
3) ДК получается прибавлением к ОК единицы:
1111 1111 1111 1111 1111 1111 1101 1010
или FFFFFFDB(16).
16. Представление чисел в памяти компьютера (формат с фиксированной запятой)
Пример 4. Дано число в формате компьютера (16 бит): FFD4(16). Определитьдесятичное значение числа.
Решение.
1) Запишем двоичный код числа:
FFD4(16) = 1111 1111 1101 0100(2)
2) Выделим элементы формата:
1 111 1111 1101 0100
знак Цифровые разряды
3) Так как знаковый разряд равен 1 (это – ), то цифровые разряды записаны в
ДК. Получим ПК по тому же правилу, по которому мы получали ДК:
ДК: 1111 1111 1101 0100
ПК: 0000 0000 0010 1100
4) Переводим ПК в 10 с.с.: 32+8+4 = 44(10)
5) Вспоминаем, что знак -. Поэтому ответ: -44(10)
17. Представление чисел в памяти компьютера (формат с плавающей запятой)
Любое действительное число можно записать в стандартном виде(иногда запись называют научной записью):
M 10p, где 1 M < 10, p — целое.
Например, 120100000 = 1,201 108.
Поскольку каждая позиция десятичного числа отличается от
соседней на степень числа 10, умножение на 10 эквивалентно
сдвигу десятичной запятой на одну позицию вправо.
Аналогично деление на 10 сдвигает десятичную запятую на
позицию влево.
Поэтому пример можно продолжить:
120100000 = 1,201 108 = 0,1201 109 = 12,01 107 .
Получается, что десятичная запятая «плавает» в числе и больше
не помечает абсолютное место между целой и дробной
частями.
18. Представление чисел в памяти компьютера (формат с плавающей запятой)
Рассмотрим запись M 10 p.Здесь: M – мантисса числа, p — порядок числа.
Чтобы сохранить максимальную точность, в памяти
компьютера мантисса хранится в нормализованном виде.
Это значит, что:
1 M < 2.
Такой способ хранения мантиссы с плавающей точкой
подразумевает, что двоичная запятая находится на
фиксированном месте: двоичная запятая следует после
первой значащей двоичной цифры. Это значит, что в
нормализованной мантиссе целая часть всегда равна 1.
Тогда её значение лежит между единицей и двойкой.
19. Представление чисел в памяти компьютера (формат с плавающей запятой)
Рассмотрим формат действительного числа. Для него можетвыделяться 4, 6, 8, 10 и др. байт. ДК не используется.
Место, отводимое для числа с плавающей точкой, делится на
три поля: знак (старший бит), место для хранения порядка
и место для хранения мантиссы. Для формата в 4 байта:
31 30 … … … 23 22…………………….0
Знак Смещенный
порядок
1 бит
8 бит
Мантисса
23 бита
20. Представление чисел в памяти компьютера (формат с плавающей запятой)
Смещенный порядок – это порядок, к которомудобавлена константа (она называется смещение
порядка), соответствующая разрядности формата.
Это позволяет не использовать ДК.
Смещение выбирается так, чтобы минимальному значению
порядка соответствовал ноль. Например, для формата 8 байт
порядок занимает 11 бит и имеет диапазон от 2–1023 до 21023,
поэтому смещение равно 1023(10) = 11 1111 1111(2) = 3FF(16).
21.
Представление чисел в памяти компьютера(формат с плавающей запятой)
Таблица смещений порядка для форматов с
плавающей запятой
Разрядность
формата, бит
Разрядность
порядка, бит
Смещение порядка
10 с.с.
16 с.с.
32
8
127
7F
64
11
1023
3FF
80
15
16383
3FFF
22.
Представление чисел в памяти компьютера(формат с плавающей запятой)
Алгоритм получения представления действительного числа в
памяти компьютера:
1) перевести модуль данного числа в двоичную систему
счисления;
2) нормализовать двоичное число, т.е. записать в виде M 2p,
где M — мантисса (ее целая часть равна 1) и p — порядок,
записанный в десятичной системе счисления;
3) прибавить к порядку смещение и перевести смещенный
порядок в двоичную систему счисления;
4) учитывая знак заданного числа (0 — положительное; 1 —
отрицательное), выписать его представление в памяти
компьютера. При этом из мантиссы выбросить целую
часть, т.к. она всегда равна 1.
23.
Представление чисел в памяти компьютера(формат с плавающей запятой)
Пример 1. Записать число –312,3125(10) в формате
компьютера с плавающей запятой размером 4 байта (32
бита).
Решение.
1) Двоичная запись модуля этого числа: 100111000,0101.
2) Нормализуем число, т.е. переносим запятую так, чтобы
в целой части была одна 1.Имеем:
100111000,0101 = 1,001110000101 28.
3) Получаем смещенный порядок, добавляя к порядку
смещение для 32-х битного формата (12710 или 7F16).
Выполнять действия удобнее в 16-ой с.с.:
810 = 10002 = 816
816 + 7F16 = 8716 = 1000 01112 .
24. Представление чисел в памяти компьютера (формат с плавающей запятой)
4) Выпишем элементы формата:Знак:
Смещенный порядок:
Мантисса:
1 (т.к. число меньше 0)
1000 01112
0011100001012 (целую часть не берем)
5) «Собираем» элементы формата:
1 10000111 001110000101 - всего 21 разряд, а нужно 32.
6) Добавляем еще 11 нулевых разрядов справа, т.к. это будут
незначащие нули:
1100 0011 1001 1100 0010 1000 0000 00002
Это запись ответа в 2-ой с.с. Для более компактной записи
используем 16-ю с.с.:
C39C2800
25. Представление чисел в памяти компьютера (формат с плавающей запятой)
Пример 2. Задано действительное число C1040000 вформате компьютера с плавающей запятой размером 4
байта (32 бита). Определить десятичное значение данного
числа.
Решение.
1) Двоичная запись этого числа:
1100 0001 0000 0100 0000 0000 0000 0000
2) Выделяем элементы формата:
Знак:
1 (т.е. число отрицательное)
Смещенный порядок: 1000 0010 или 8216
Мантисса: 000 0100 0000 0000 0000 0000
26. Представление чисел в памяти компьютера (формат с плавающей запятой)
3) Получаем порядок вычитанием из 8216 смещения дляформата в 32 бита:
8216 – 7F16 = 316
4) Получаем мантиссу – целая часть равна 1, а дробную часть
берем из формата, отбрасывая незначащие нули:
1, 00001
5) Записываем двоичное число в нормальной форме:
-1,000012∙23
6) Порядок говорит о том, что запятую надо сдвинуть на 3
разряда вправо:
-1000,012 = - (8+1/4 ) = -8,2510
27. Представление чисел в памяти компьютера (формат с плавающей запятой)
Особенности формата с плавающей запятойЕсли при вычислениях с действительными числами результат выходит
за пределы допустимого диапазона, то выполнение программы
прерывается. Такое происходит, например, при делении на ноль, или
на очень маленькое число, близкое к нулю.
Действительные числа, разрядность мантиссы которых превышает
число разрядов, выделенных под мантиссу в памяти, представляются
в компьютере приближенно (с “обрезанной” мантиссой). Например,
рациональное десятичное число 0,1 в компьютере будет представлено
приближенно (округленно), поскольку в двоичной системе счисления
его мантисса имеет бесконечное число цифр. Следствием такой
приближенности является погрешность машинных вычислений с
вещественными числами.
Вычисления с вещественными числами компьютер выполняет
приближенно. Погрешность таких вычислений называют
погрешностью машинных вычислений.
Множество вещественных чисел, точно представимых в памяти
компьютера в форме с плавающей точкой, является ограниченным и
дискретным. Их количество можно вычислить.
28. Представление графической информации
Рассмотрим растровую графику.Для кодирования любого изображения его разбивают на
точки и цвет каждой точки закодировать.
Например, черно-белую картинку можно закодировать,
используя два бита: 11 — белый цвет, 10 — светлосерый, 01 — темно-серый и 00 — черный цвет.
Для кодировки 256 различных цветов требуется 8 бит.
Для кодирования полноцветных изображений в
современных компьютерах для хранения цвета одной
точки используется 3 байта.
29. Представление графической информации
Система кодирования цветной графической информацииRGB
(Red, Green, Blue)
Каждый цвет – это комбинация трех цветовых
составляющих: красного, зеленого и синего. Первый байт
определяет интенсивность красной составляющей, второй
— зеленой, третий — синей.
Белый цвет кодируется максимальной интенсивностью всех
трех составляющих (255, 255, 255 или в 2-й с.с. 111111111,
11111111, 11111111). Черный цвет — отсутствие всех
цветовых составляющих — (0,0,0). Красный цвет может
быть темным — (120,0,0) или ярко-красным (255,0,0).
Система RGB обеспечивает однозначное определение 16,5
млн. различных цветов и оттенков (224).
30. Представление графической информации
Качество графического изображения зависит также отколичества точек (пикселей) на единице площади. Этот
параметр называется разрешением и измеряется в точках
на дюйм — dpi.
Расчет объема графической информации сводится к
вычислению произведения количества точек в
изображении на количество разрядов, необходимых для
кодирования цвета одной точки.
Например, для цветной картинки размером 640 × 480,
составленной из 256 цветов, требуется:
8 • 640 • 480 = 23 • 64 • 10 • 6 • 8 • 10 = 23 • 26 • 2 • 5 • 2 • 3 • 23
• 2 • 5 = 210 •5 •25 • 3 • 5 = 22 • 75 • 23 • 210 бит = 4•75 Кбайт
= 300 Кбайт.
31. Представление графической информации
Число цветов, воспроизводимых на экране (K), ичисло бит, отводимых под каждый пиксель (N),
связаны формулой:
K=2N
Число бит N, отводимых под каждый пиксель
называют битовой глубиной.
32. Представление звуковой информации
Звуковая волна преобразуется в двоичный код спомощью звуковой платы (аудиоадаптера).
В процессе записи звука аудиоадаптер с
определенным периодом измеряет амплитуду
электрического тока и заносит в регистр
двоичный код полученной величины.
Затем полученный код из регистра переписывается
в оперативную память компьютера. Качество
компьютерного звука определяется
характеристиками аудиоадаптера: частотой
дискретизации и разрядностью.
33. Представление звуковой информации
Частота дискретизации – это количествоизмерений входного сигнала за 1 секунду.
Измеряется в герцах (Гц).
Одно измерение в секунду соответствует частоте
1 Гц.
1000 измерений в секунду соответствует частоте
1 кГц (килогерц).
34. Представление звуковой информации
Разрядность регистра – это число бит врегистре аудиоадаптера. Она определяет
точность измерений входного сигнала. Чем
больше разрядность, тем меньше погрешность
каждого отдельного преобразования величины
электрического сигнала в число и обратно.
Если разрядность 8, то при измерении входного
сигнала можно получить 256 различных
значений. Очевидно, чем больше разрядность
аудиоадаптера, тем точнее воспроизводится
звук.
35. Представление звуковой информации
Пример. Определить размер V в байтах цифровогоаудиофайла, время звучания которого t=10 секунд при
частоте дискретизации ν=22,05 кГц и разрешении i=8
бит. Файл сжатию не подвержен.
Решение.
Формула: V = ν ∙ i ∙ t бит
22050∙10 ∙8 / 8 байт = 220500 байт