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



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

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

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

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

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

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

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

Символы

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

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

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

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

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

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

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

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

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

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

Компьютеры состоят из логических схем, которые обрабатывают информацию в виде электрических сигналов, принимающих два значения. Мы обозначаем их цифрами 0 и 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. Двоичное представление целых чисел со знаком

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

Рассмотрим принцип сложения двух одноразрядных чисел. Результат выполне­ния этой операции приведен на рис. 4.2. Обратите внимание, что для записи ре­зультата сложения двух единиц необходим 2-битовый вектор 10, представляю­щий значение 2. В этом случае говорят, что сумма равняется 0, а перенос — 1. Для сложения многоразрядных чисел используется метод, аналогичный тому, с помо­щью которого мы складываем десятичные числа на бумаге. Складываются пары разрядов, начиная с младшего разряда, то есть с правого края битового вектора, с переносом в направлении старшего разряда, то есть левого края битового вектора.

0 1 0 1

+0 +0 +1 +1

0 1 1 10

Перенос

Рис. 4.2. Сложение одноразрядных чисел


Дата добавления: 2018-02-18; просмотров: 252; ЗАКАЗАТЬ РАБОТУ