Информационные системы. Представление целых чисел в памяти ЭВМ.

  • Презентации учебные
  • pptx
  • 05.05.2021
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Для представления информации в памяти ЭВМ (как числовой, так и не числовой) используется двоичный способ кодирования. Элементарная ячейка памяти ЭВМ имеет длину 8 бит (байт). Каждый байт имеет свой номер (его называют адресом). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машинным словом. Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32, 64 битам и т.д. Кодирование символов Для кодирования символов достаточно одного байта. При этом можно представить 256 символов (с десятичными кодами от 0 до 255). Набор символов персональных ЭВМ, совместимых с IBM PC, чаще всего является расширением кода ASCII (American Standard Code for Information Interchange — стандартный американский код для обмена информацией). В настоящее время используются и двухбайтовые предсталения символов. Двоично-десятичное кодирование В некоторых случаях при представлении чисел в памяти ЭВМ используется смешанная двоично-десятичная "система счисления", где для хранения каждого десятичного знака нужен полубайт (4 бита) и десятичные цифры от 0 до 9 представляются соответствующими двоичными числами от 0000 до 1001. Например, упакованный десятичный формат, предназначенный для хранения целых чисел с 18-ю значащими цифрами и занимающий в памяти 10 байт (старший из которых знаковый), использует именно этот вариант.
Иконка файла материала Информационные системы. Представление целых чисел в памяти ЭВМ.pptx

ИНФОРМАЦИОННЫЕ системы. Представление целых чисел в памяти ЭВМ. .

Никитин М.Е., преподаватель профеСсиональных модулей высшей категории

ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ГОРОДА МОСКВЫ «Политехнический колледж имени П.А. Овчинникова»

2

Представление целых чисел

Под каждое число выделяется область памяти определённого размера
Целые числа:
Знаковые (все биты – информационные), хранение только неотрицательных чисел
Беззнаковые (старший бит – знаковый, остальные – информационные), имеется возможность хранения отрицательных значений
Переполнение – ситуация, при которой результат операции требует больше памяти, чем выделено
Факт переполнения означает, что полученный результат неверен с математической точки зрения

© https://znanio.ru/person/z98576333

3

Представление целых чисел

Беззнаковые числа (n=3)
0002 = 010
0012 = 110
0102 = 210 23 = 8 различных
0112 = 310 значений
1002 = 410
1012 = 510
1102 = 610
1112 = 710
10002 = 010

© https://znanio.ru/person/z98576333

4

Представление целых чисел

Беззнаковые числа (n=3)
111 + 1 = 10002 = 010

Признак возникновения переполнения – наличие старшей единицы, которая в дальнейшем отбрасывается

При низкоуровневом программировании (например, на ASM) имеется возможность отследить факт возникновения переполнения

Нет числовой прямой, есть числовое кольцо

© https://znanio.ru/person/z98576333

5

Представление целых чисел

0 – 1 => max
max + 1 => 0

1

0 >0

max

© https://znanio.ru/person/z98576333

6

Представление целых чисел

Знаковые числа
Прямой код (ПК) числа – код, полученный простым переводом числа из 10й в 2ю СС
Обратный код (ОК) числа – код, полученный инвертированием всех разрядов ПК
Дополнительный код (ДК) числа – ОК, к которому выполнили арифметическое +1

© https://znanio.ru/person/z98576333

7

Представление целых чисел

ДК позволяет заменить операцию вычитания операцией сложения (числа А и B – положительные):
a - b = a + (-b) = a + c
Целое положительное число C ведёт себя так же, как отрицательное число (-b)
Это возможно из-за того, что числовой набор представляет не прямую, а кольцо
ДК унифицирует алгоритмы выполнения операций знаковых и беззнаковых чисел в ЭВМ (упрощение архитектуры)

© https://znanio.ru/person/z98576333

8

Представление целых чисел

Считается, что в ДК переводятся только отрицательные числа
Представления неотрицательных чисел в ПК и ДК совпадают
Алгоритмы перевода ПК->ДК и ДК->ПК совпадают:
Инвертирование
+1

© https://znanio.ru/person/z98576333

9

Представление целых чисел

N=5 (жирным – знаковый разряд)
ПК->ДК
ПК числа +12: 011002
ОК числа -12: 100112
ДК числа -12: 101002
ДК->ПК
ДК числа -12: 101002
Инверсия ДК: 010112 (это не ОК!)
ПК числа +12: 011002

© https://znanio.ru/person/z98576333

10

Представление целых чисел

Знаковые числа (n=3)
0002 = 010
0012 = 110
0102 = 210 23 = 8 различных
0112 = 310 значений
1002 = -410 (переполнение!)
1012 = -310
1102 = -210
1112 = -110
10002 = 010

© https://znanio.ru/person/z98576333

11

Представление целых чисел

min – 1 => max
max + 1 => min
>0

max
0
min

<0

© https://znanio.ru/person/z98576333

12

Представление целых чисел

(n=5) Пример выполнения операции 12-5:
12: ПК = 011002
5:
ПК = 001012 (+5)
ОК = 110102 (-5)
ДК = 110112 (-5)
1210-510 = 011002+110112= (1)01112 = 710
Ноль в знаковом разряде – признак ПК

0

1

0

1

0

1

(1) 0

0

1

© https://znanio.ru/person/z98576333

13

Представление целых чисел

Признак переполнения – наличие нечётного суммарного количества «единиц» в четырёх знаковых разрядах операндов и результата (включая теряющийся разряд – при наличии)
-6: ПК=001102, ОК=110012, ДК=110102
-11: ПК=010112, ОК=101002, ДК=101012
Переполнение произошло, результат неверен

-6

1

1

0

1

0

-11

0

1

0

1

-17 -> +15

(1) 0

1

© https://znanio.ru/person/z98576333

14

Представление целых чисел

Единица в знаковом разряде – признак ДК
(n=5) Пример выполнения операции 8+10:
8: ПК=010002
10:ПК=010102
Переполнение произошло, результат неверен
ДК=100102, х=011012, ПК=011102=1410

8

0

1

0

10

1

0

18 -> -14

(0) 1

0

© https://znanio.ru/person/z98576333

15

Представление целых чисел

Допускается запись в память числа без знака, а чтение со знаком (и наоборот), например:
BC++ 3.1:
unsigned int k = -200;
short int p = 40000;
cout<MS VS 2008 (C#)
short x = 20000, y = 20000;
short z = (short)(x + y);
MessageBox.Show(z.ToString());

© https://znanio.ru/person/z98576333

16

Представление целых чисел

Диапазоны хранимых значений:
беззнаковые – [0; 2n-1]
Знаковые – [-2n-1; 2n-1-1]
Стандартные типы в ЭВМ
8 битов (unsigned char, byte / char, shortint) – [0; 255], [-128; 127]
16 битов (unsigned short int, word / short int, integer) – [0; 65535], [-32768; 32767]
32 бита (unsigned long int, cardinal / long int, longint) – [0; 4.2млрд], [-2.1млрд; 2.1млрд]
64 бита (int64) – [0; 264-1], [-263; 263-1]

© https://znanio.ru/person/z98576333

17

Кодирование символьной информации

© https://znanio.ru/person/z98576333

18

Кодирование символьной информации

Таблица ASCII – American Standard Code for Information Interchange
1 символ = 8 битов
28=256 символов:
0..127 – базовая часть
128..255 – расширенная часть

© https://znanio.ru/person/z98576333

19

Кодирование символьной информации

КОИ8-Р

CP-1251

CP866

ISO

Пример: ╧юяЁюёшЄх фтр фюяюыэшЄхы№э√ї срыыр є ыхъЄюЁр ш эшъюьє юс ¤Єюь эх Ёрёёърч√трщЄх

© https://znanio.ru/person/z98576333

20

Кодирование символьной информации

Unicode – стандарт 1991 года
1 символ = 16 бит
216 = 65536 символов
0..127 совпадает с ASCII (для совместимости)
Кодирует символы почти всех письменных языков
Избавляет от необходимости переключать кодовые страницы
Поддерживает написание LTR и RTL
Поддерживает кодирование little-endian и big-endian – определяется в начале файла после маркера последовательности байтов

© https://znanio.ru/person/z98576333

21

Кодирование символьной информации

Не поддерживает вертикальное письмо (поддержку должны обеспечивать текстовые редакторы)
Поддерживает формы нормализации (композиции и декомпозиции)



Поддерживает таблицы совместимой декомпозиции

© https://znanio.ru/person/z98576333

22

Представление чисел с ПЗ в памяти ЭВМ

© https://znanio.ru/person/z98576333

23

Представление чисел с ПЗ

Любое вещественное число представимо в системе счисления N в виде:
K= ±MN ±p
M – мантисса
p – порядок
X – характеристика (смещённый порядок)

© https://znanio.ru/person/z98576333

24

Представление чисел с ПЗ

Нормализация:
Справа – после запятой стоит не ноль
372,9510 = 0,37295 · 103
0,0110112 = 0,11011 · 2-1
0,12 = 0,1 · 20

Слева. Согласно стандарту IEEE 754 – мантисса принимает значения 1 ≤ mN
Недостаток: невозможно закодировать «0», поэтому представление предусматривает специальный признак нулевого значения

© https://znanio.ru/person/z98576333

25

Представление чисел с ПЗ

Тип

Р-р памяти, бит = b

Знач. цифр

Диапазон

Real (k = +1)

48=7+40

11–12

Single (k= – 1)

32=8+24

7–8

1.4·10-45..3.4·1038

Double (k= – 1)

64=11+53

15–16

4.9·10-324..1.8·10308

Extended (k= – 1)

80=15+64

19–20

3.1·10-4944..1.2·104932

Х = 2b–1 + k + p (k – поправочный коэффициент IBM)

© https://znanio.ru/person/z98576333

26

Представление чисел с ПЗ

Алгоритм формирования двоичного представления вещественного числа:

Число представляется в двоичном коде.

Двоичное число нормализуется. При этом для чисел, больших единицы, плавающая точка переносится влево, определяя положительный порядок. Для чисел, меньших единицы, точка переносится вправо, определяя отрицательный порядок.

С учетом типа вещественного числа по таблице определяется характеристика.

В отведенное в памяти поле, в соответствии с типом числа, записываются мантисса, характеристика и знак числа

первый бит мантиссы (для нормализованного числа всегда 1) для чисел типа real, single, double не хранится (является скрытым). В числах типа extended все разряды мантиссы хранятся в памяти ЭВМ.

© https://znanio.ru/person/z98576333

27

Представление чисел с ПЗ

Пример: –15,37510
Двоичная СС: 1111,0112
Нормализованное число: 1,1110112 · 23
M = 1,1110112
m = 1110110...02
Порядок р = 3; X = 27 – 1 + 3 = 13010= 100000102
Знак s = 1
Результат: 00 00 76 C1 или 0x76C1 (single)

© https://znanio.ru/person/z98576333

28

28

Представление чисел с ПЗ

Пример: 0,187510
Двоичная СС: 0,00112
Нормализованное число: 1,12 · 2–3
M = 1,12
m = 10...02
Порядок р = –3; X = 27 – 1 – 3 = 12410= 011111002
Знак s = 0
Результат: 00 00 40 3E или 0x403E (single)

© https://znanio.ru/person/z98576333

29

Представление чисел с ПЗ

Пример: 0.110
Двоичная СС:
0,0(0011)2
M=1,10011001100110011001100110
m= 100110011001100110011010
0.10000000149011610
результирующее число чуть больше 0.110
при выводе числа на экран может быть как 0.1, так и не 0.1 (зависит от компилятора среды программирования и точности вывода числа по умолчанию)

© https://znanio.ru/person/z98576333