Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_бакалавры_информатика _вариант для печати.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.96 Mб
Скачать

Контрольные вопросы для самоподготовки студентов

  1. Что такое система счисления?

  2. Какие виды систем счисления вы знаете?

  3. Почему в ЭВМ используется двоичная система счисления?

  4. Как представить десятичное число в шестнадцатеричной системе счисления?

  5. Привести правило перевода числа из восьмеричной системы счисления в десятичную?

  6. Как перевести число из двоичной системы счисления в восьмеричную?

  7. Привести правила выполнения арифметических операций над двоичными числами.

  8. Даны числа в четверичной системе счисления от 1 до 33. Выпишите все числа, делящиеся на 3 без остатка.

  9. Какое число следует за числом 11114 в 14-ричной системе счисления?

Ссылки на литературные источники, приведенные в рабочей программе дисциплины

  1. Информатика: учебн.пособие для студ.высш.пед.завед-й/А.В. Могилев, Е.К. Хеннер, Н.И. Пак; под ред. А.В. Могилева. –М.: Изд.Центр «Академия», 2006.-336 с.

  2. Арифметические основы ЭВМ: Методические указания для домашней работы/Сост. Г.А. Фролова. - Егорьевск: - ЕТИ ФГБОУ ВПО МГТУ "СТАНКИН", 2013.-32 с.(электрон. библиотека ЕТИ)

  3. Фатеева Н.М. Арифметические и логические основы компьютера: учебно-методические указания / Н.М. Фатеева, О.А. Возилкина, Н.В. Тумбаева. Барнаул: Изд-во АГАУ, 2008. 53 с. (электронный ресурс) режим доступа http://window.edu.ru/resource/655/77655/files/fateeva_evm.pdf

Лекция № 3 Тема «Форматы данных и машинные коды чисел»

План лекции

  1. Естественная форма данных.

  2. Нормальная форма числа.

  3. Машинные коды чисел.

  4. Действия над числами в естественной форме.

Естественная форма данных

Числа в компьютерах в двоичных кодах представляются как с фиксиро­ванной точкой или запятой, так и с плавающей точкой или запятой. Пред­ставление чисел в формате с фиксированной точкой получило название ес­тественной формы числа, представление с плавающей точкой - нормальной формы числа. Под те или иные форматы всегда отводится заранее извест­ное количество разрядов (бит) - 16, 32 и т. д. Эта же величина может быть выражена в байтах, с учетом того, что 1 байт = 8 бит.

Для чисел в естественной форме положение точки жестко фиксируется:

    • для целых чисел точка располагается справа от младшего разряда:

0000000000000000.2 = 0]0, 0111111111111111.2 = 32767.10;

    • для правильных дробей - перед старшим разрядом:

0.000000000000000 2 = 010, 0.0000000000000012 = 0.000 030 517 578 = 12510;

    • для смешанных дробей - в определенном месте, отделяющем целую часть числа от дробной:

000000. 00000000002=0.010, 000001.00000000012 = 1.000 976 56310.

Наиболее часто такая форма используется для целых чисел и целых чи­сел без знака. Количество разрядов может быть либо 16 (вид Н), либо 32 (вид Р).

Во всех форматах знак числа помещается в старший разряд и кодируется как 0 - знак положительного числа - либо как 1 - знак отрицательного числа. Знак отделяется от самого числа воображаемой точкой (рис.1).

Формат Н

Знак 2 14 2 13 2 1

1

1

1

...

1

1

А min

0

1

1

...

1

1

А max

0 1 2 ... 14 15

Формат F

Знак 2 30 2 29 2 1 2 °

1

1

1

...

1

1

А min

0

1

1

...

1

1

А max

0

1

2

30

31

Рис.1 Форматы чисел с фиксированной точкой

Фиксированная точка позволяет задать число только в строго определенном диапазоне. В формате Н числа можно задавать от 1111 1111 1111 11112 до 0111 1111 1111 11112, т. е. от -3276710 до 3276710 , или от 1 - 215 до 215 - 1

В формате F числа могут находиться в интервале от 1111 1111 1111 1111 1111 11111111 11112 до 0111 1111 1111 1111 11111111 111111112, т. е. от -7FFFFFFF16 до 7FFFFFFF16.

Естественно, что представление в шестнадцатеричной системе для формы F предпочтительнее двоичной системы. Рассмотрим несколько примеров.

Нормальнаяформачисла

Для расширения диапазона рассматриваемых чисел по сравнению с ес­тественной формой чисел используется формат с плавающей точкой или нормальная форма. Любое число в этом формате представляется, как А= ±mа Е±Pa ,

где mа - мантисса числа А; Е - основание системы счисления; ±Ра - поря­док. Все эти величины - двоичные числа без знака.

На рис.2. приведен формат числа в нормальной форме. Старший раз­ряд (нулевой) содержит знак мантиссы, первый разряд - знак порядка, 6 разрядов, со второго по седьмой, определяют значение порядка, а осталь­ные - мантиссу. Нормальная форма может быть представлена коротким форматом Е (4 байта), длинным форматом D (8 байт) и повышенной точ­ности (16 байт). Во всех этих формах представления первый байт остается постоянным, изменяется только область, отведенная под мантиссу.

Знакma ЗнакРа Порядок Мантисса

Знакma

ЗнакРа

Ра

ma

0 1 2 ... 7 8 31

Рис.2 Нормальная форма числа

При таком представлении чисел 0 может быть записан 64 разными спосо­бами, т. к. для этого подходят любые значения порядков 0 • 2° = 0 • 21 =...= 0 • 263. А другие числа могут иметь много различных форм записи. На­пример, 153610= 3 • 29 = 6 • 28=...= 768 • 21.

Для однозначного представления чисел мантиссу нормализуют, т. е. на­кладывают ограничение

1/Е <m< 1.

Это ограничение означает, что мантисса представляет собой правильную Дробь и содержит хотя бы одну значащую цифру после запятой, отличную от нуля. Нормализованным представлением нуля является такое представ­ление, при котором во всех разрядах находятся нули.

При использовании нормальной формы для части компьютеров харак­терно смещение оси порядков в область положительных значений. В этом случае арифметические действия производятся над порядками, не имеющими знака. В нормальной форме под значение порядка отводится 7 разрядов, один из них знаковый. Таким образом, значение порядка может ле­жать в интервале 26< Р < 2б - 1, т. е. от -64 до 63.

Сместив порядок на 2б = 64 = 4016, мы получаем интервал возможных значений 0 <Р < 27 - 1 = 127. Смещенный порядок на 40)6 называется ха­рактеристикой и вычисляется как Рх = Р + 40.

Если характеристика равна 40, то порядок равен нулю; если характеристика меньше 40, то порядок отрицателен; если больше - то положителен.

Машинные коды чисел

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

Представление чисел в прямом коде складывается из знакового разряда и собственно числа. Например, рассмотрим несколько восьмиразрядных двоичных чисел в прямом коде и их двоичные эквиваленты:

+2910 = 001111012 2910= 101111012

+ 12710 = 011111112 12710 = 111111112

+010 = 000000002 010 = 100000002

Система представления в прямом коде содержит одинаковое количество положительных и отрицательных чисел, причем 0 может быть представлен двумя способами.

Для представления отрицательных чисел или замены операции вычита­ние на сложение используются обратный или дополнительный коды. Сущ­ность этих кодов заключается в том, что вычитаемое число X, как отрица­тельное число, представляется в виде дополнения до некоторой константы С, такой, что С - X> 0. Обратный и дополнительные коды отличаются вы­бором этой константы.

Для дополнительного кода отрицательное число Z. представляем как

Z= -X = (10n - X) – 10n,

где Z< 0, X> 0, n - величина разрядной сетки, а 10n - X - дополнительный код числа.

Для обратного кода отрицательное число Z представляем как

Z = -Х = (10n-1-X) – 10n+1,

где Z<0, Х>0, n - величина разрядной сетки, а 10n -1-Х- обратный код числа.

Например, определим машинные коды чисел +31 и -31 в естественной форме Н. Отметим, что самый старший разряд - знаковый.

Для числа +31 прямой, дополнительный и обратный коды выглядят одинаково:

анп= Ан° = Анд = 0000 0000 0001 11112 .

Для числа -31 прямой код выглядит как

Анп= 100000000001 11112.

Для построения дополнительного кода берем константу

1015 = 1 000 0000 0000 0000

и получаем

АНД = 1111 1111 111000012.

При построении обратного кода константа равна

1015- 1 = 111 1111 1111 1111 и Ан° = 1111 1111 1110 00002.

Рассмотрим правила образования двоичных машинных кодов:

  • положительное число в прямом, обратном и дополнительном кодах выглядит одинаково;

  • прямой код отрицательных и положительных чисел имеет различное значение только в знаковом разряде, модуль числа не изменяется;

  • обратный код отрицательного числа получается из прямого кода пу­тем замены единиц на нули и нулей на единицы, исключая знаковый разряд;

  • дополнительный код получается из обратного прибавлением едини­цы к младшему разряду (перенос в знаковый разряд при этом теря­ется);

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

Обычно в компьютере числа, представленные в естественной форме, хранятся в дополнительном коде, а числа, представленные в нормальной форме, хранятся в прямом коде. Обратный код используется как промежyточное звено для получения дополнительного кода.

Действия над числами в естественной форме

Машинные арифметические операции над числами производятся по-разному в зависимости от формы представления этих чисел.

При сложении чисел, представленных в естественной форме, необходимо учитывать следующие положения:

  • числа хранятся в памяти компьютера в дополнительном коде;

  • числа складываются вместе со знаками, при этом формируется знак результата;

  • при сложении чисел с разными знаками единица переноса из знакового разряда стирается;

  • признак переполнения разрядной сетки при сложении чисел с одинако­выми знаками говорит либо о том, что знак суммы не соответствует зна­кам слагаемых, либо о том, что перенос из старшего разряда в знаковый рассогласован.

Рассмотрим несколько примеров.

1. Даны два десятичных числа А = 126 и В = 267. Найти сумму этих чисел при разных знаках.

Вначале представим числа в двоичном коде:

А = 12610=111 11102

В=26710=1 0000 10112

В естественной форме Е эти числа имеют следующий вид:

Ап= 0.000000001111110 Вп = 0.000000100001011

[-АД] = 1.111111110000010 [-ВД] = 1.111111011110101

Проведем сложение чисел, используя соответствующие коды:

A+B=S1

AП

0.000 0000 0111 1110

П

0.000 0001 0000 1011

S1

0.000 0001 1000 1001

-А - В = S2

[-AД]

1.111 1111 1000 0010

+[-BД]

1.111 1110 1111 0101

S2

1 1.111 1110 0111 0111

А - В = S3

AП

0.000 0000 0111 1110

+[-BД]

1.111 1110 1111 0101

S3

1.111 1111 0111 0011

-А + В = S4

[-АД]

1.111 1111 1000 0010

П

0.000 0001 0000 1011

S4

10.000 0000 1000 1101

При получении сумм 51 и 53 переполнение разрядной сетки не про­изошло. При сложении -А - В и -А + В образовался перенос из знакового разряда, который следует отбросить. Суммы S1 и S4 положительны, а S2 и S3 - отрицательны.

Проверим правильность полученных результатов. Для этого произведем заданное сложение в десятичной системе и сравним с S1, S2, S3 и S4. ,

А + В = 39310 = 18916 = 0.000 0001 1000 10012

-А- В = -39310 =-18916 =1.111 11100111 01112

А-В =-14110 =-8D16= 1.111 1111 0111 00112

-А + В = 14110 = 8D16 = 0.000 0000 1000 11012

Проверка показывает правильность вычисленных сумм.