Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров_1 / 4_Представление информации в компьютере.doc
Скачиваний:
42
Добавлен:
20.03.2015
Размер:
340.48 Кб
Скачать

4. Лекция. Представление чисел в компьютерах. Двоичная арифметика. Точность вычислений. Память компьютеров и адреса.

  1. Представление чисел в компьютерах

    1. Числа, арифметические операции и символы

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

      2. Сложение положительных чисел

      3. Сложение и вычитание чисел со знаком

      4. Переполнение в целочисленной арифметике

    2. Символы

    3. Обработка чисел с плавающей запятой

      1. Стандарт IEEE для чисел с плавающей запятой

      2. Арифметические операции над числами с плавающей запятой

      3. Точность вычислений. Разряды защиты и усечение

    4. Память и адреса

    5. Операции доступа к памяти. Коды ASCII символов

    6. Пример доступа к памяти персонального компьютера

Все компьютеры работают с числами. У них имеются команды для осуществ­ления базовых арифметических операций с данными. Кроме того, при выполне­нии машинных команд программы выполняется ряд арифметических операций, генерирующих числовые адреса для доступа к хранящимся в памяти операндам. Для того чтобы понять, как решаются эти задачи, студент должен знать, как чис­ла представлены в компьютере и каким образом они складываются и вычитаются. Этому вопросу посвящена данная лекция. Подроб­ное описание логических схем, реализующих компьютерную арифметику, можно узнать в литературе [2] по этому курсу.

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

4.1. Числа, арифметические операции и символы

Компьютеры состоят из логических схем, которые обрабатывают информацию в виде электрических сигналов, принимающих два значения. Мы обозначаем их цифрами 0 и 1. Количество информации, представленной та­ким сигналом, измеряется в битах. Наиболее есте­ственный способ представления числа в компьютерной системе заключается в использовании строки битов, называемой двоичным числом. Символ текста то­же может быть представлен строкой битов, называемой кодом символа.

Для начала мы опишем представление чисел и арифметические операции над ними в двоичной системе счисления, а затем поговорим о представлении символов.

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

Рассмотрим n-разрядный вектор

В = bn-1 b1b0

Здесь bi = 0 или 1 при 0 ≤ i ≤ n-1. Этот вектор может представлять беззнаковое це­лочисленное значение V в диапазоне от 0 до 2n-1, где

V(B) = bn-1 x 2n-1 + ...+b1 x 21 + b0 x 20

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

- значение со знаком;

- дополнение до единицы;

- дополнение до двух.

Во всех трех системах крайний слева бит, называемый самым старшим разря­дом (Most Significant Bit, MSB), равен 0 в случае положительных чисел и 1 — в случае отрицательных. На рис. 4.1 все три представления показаны на примере 4-разрядных (4-битовых) чисел. Положительные значения во всех трех системах представляются одинаково, а отрицательные — по-разному. В системе значения со знаком отрицательные числа отличаются от соответствующих положительных чисел тем, что значение самого старшего бита (bз на рисунке 4.1) в векторе В равня­ется не 0, а 1. Например, число +5 представляется как 0101, а число -5 как 1101. Такое представление чисел называют еще прямым кодом числа со знаком. В представлении дополнения до единицы отрицательные значения получают пу­тем дополнения каждого разряда соответствующего положительного значения до единицы. Таким образом, представление числа -3 формируется путем дополнения каждого бита вектора 0011, так что в результате получается 1100. Такое представление чисел еще называют обратным кодом числа. Очевидно, что эту же операцию необходимо выполнить для преобразования отрицательного числа в соответствующее положительное значение. И в одном и в другом случае преобразо­вание называется дополнением числа до единицы. Операция формирования до­полнения заданного числа до единицы эквивалентна вычитанию этого числа из 2n-1, то есть из 1111 в случае 4-разрядных чисел (см. рис. 4.1). В системе допол­нения до двух операция дополнения производится путем вычитания числа из 2n. То же самое значение можно получить и путем добавления 1 к дополнению этого числа до единицы. Такое представление числа еще называют дополнительным кодом числа.

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

Двоичное значение

b3b2b1b0

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

значения со знаком

дополнения до единицы

дополнения до двух

0111

+7

+7

+7

0110

+6

+6

+6

0101

+5

+5

+5

0100

+4

+4

+4

0011

+3

+3

+3

0010

+2

+2

+2

0001

+1

+1

+1

0000

+0

+0

+0

1000

-0

-7

-8

1001

-1

-6

-7

1010

-2

-5

-6

1011

-3

-4

-5

1100

-4

-3

-4

1101

-5

-2

-3

1110

-6

-1

-2

1111

-7

-0

-1

Рис. 4.1. Двоичное представление целых чисел со знаком