Теоретические основы информатики

Автор работы: Пользователь скрыл имя, 11 Декабря 2010 в 14:59, реферат

Описание работы

Понятие информации и информатики

Файлы: 1 файл

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ.doc

— 856.50 Кб (Скачать файл)

ы

х

 

ч

и

с

е

л

 

 

0.

    

Е

с

т

ь

у

д

о

б

н

о

е

 

с

о

о

т

н

о

ш

е

н

и

е

 

м

е

ж

д

у

 

з

а

п

и

с

ь

ю

 

п

о

л

о

ж

и

т

е

л

ь

н

о

г

о

 

и

 

о

т

р

и

ц

а

т

е

л

ь

н

о

г

о

 

ч

и

с

е

л

,

о

д

и

н

а

к

о

в

ы

х

 

п

о

м

о

д

у

л

ю.

О

н

и

 

с

о

в

п

а

д

а

ю

т

,

е

с

л

и

и

х

ч

и

т

а

т

ь

с

п

р

а

в

а

н

а

л

е

в

о,

д

о

п

е

р

в

о

й

е

д

и

н

и

ц

ы

 

в

к

л

ю

ч

и

т

е

л

ь

н

о,

а

 

с

 

э

т

о

г

о

 

м

е

с

т

а

 

о

н

и

 

я

в

л

я

ю

т

с

я

д

о

п

о

л

н

е

н

и

я

м

и

д

р

у

г

д

р

у

г

а

.

Д

о

п

о

л

н

е

н

и

е

м

 

н

а

б

о

р

а

б

и

т

о

в

 

я

в

л

я

е

т

с

я

н

а

б

о

р

 

б

и

т

о

в

,

к

о

т

о

р

ы

й

 

п

о

л

у

ч

а

е

т

с

я 

п

у

т

е

м

 

з

а

м

е

н

ы

в

с

е

х

н

у

л

е

й

 

н

а

е

д

и

н

и

ц

ы

 

и

 

н

а

о

б

о

р

о

т

,

т.е. дополнении до N-1, где N — минимальное число, вызывающее перенос в следующий разряд при данном количестве разрядов (для 4-битового кода это 16). Это дополнение называют также инверсией

.

Н

а

п

р

и

м

е

р

, 0

0

1

0

и

 

1

110

 

д

о

п

о

л

н

е

н

и

я

 

д

р

у

г

 

д

р

у

г

а


 
 
 
 

    

                  Наборы из трех бит                     Наборы из четырех битов

    

Набор битов

Значение
 

011 3
010 2
001 1
000 0
111 -1
110 -2
101 -3
100 -4
    
Набор битов Значение
0111 7
0110 6
0101 5
0100 4
0011 3
0010 2
0001 1
0000 0
1111 -1
1110 -2
1101 -3
1100 -4
1011 -5
1010 -6
1001 -7
1000 -8
 
 
 
 
 
 
 
 
 
 
 
 
 

    

Рис. 1.9. Таблицы  кодов 3-х и 4-х битовых 

    

Например, возьмем два числа в 4-битовом представлении 2 и -2. Они заканчиваются на 10, но запись числа 2 начинается с 00, а числа -2 — с 11. Это наблюдение может помочь найти алгоритм для получения записи отрицательного числа из записи положительного и наоборот, когда эти числа равны по модулю. Мы просто переписываем исходную последовательность справа налево до тех пор, пока не будет переписана единица, затем мы переписываем оставшиеся разряды, заменяя их дополнениями (т.е. заменяя нули на единицы, а единицы на нули). Обратите внимание, что самое маленькое отрицательное число в представлении в дополнительном коде не имеет положительного эквивалента.

    

Представление числа 6  и -6 в 4-битовом дополнительном коде

    
0 1 1 0

    

 

    

    

    

 

    
1 0 1 0

    

Рис. 1.10. Представление  числа -6

    

в 4-битовом дополнительном коде 

    

Исходя из свойств  представления чисел в двоичном дополнительном коде можно представить алгоритм их декодирования.

    

Если знаковый бит записи равен 0, то эта последовательность двоичной записи числа.

    

Например, 0110 является представлением числа 6, потому что 110 является двоичной записью шести.

    

Если знаковый разряд равен 1, значит, перед нами отрицательное число и надо только найти его модуль. Переписываем исходную последовательность справа налево, пока не будет переписана 1, затем переписываем оставшиеся биты, дополняя их. И, наконец, расшифровываем полученную последовательность, как если бы она была двоичной записью числа.

    

Например, переведём  последовательность 1010 в десятичную систему счисления. Сначала определяем - перед нами отрицательное число, так как знаковый разряд равен 1. Следовательно, переписываем запись как 0110. Определяем, что она является представлением числа 6, и делаем вывод о том, что исходный набор битов является представлением числа -6.

        1. Сложение  в двоичном дополнительном коде

    

Алгоритм сложения чисел в двоичном дополнительном коде такой же, как для двоичного сложения, только здесь все коды, включая результат операции, будут иметь одинаковую длину. Это значит, что если в результате сложения появляется дополнительный бит с левого края, он будет отсечен. Именно поэтому 0101 и 0010 в сумме дают 0111, а сумма 0111 и 1011 равна 0010 (0111 + 1011 = 10010, которая усекается до 0010).

    

Рассмотрим примеры сложения в дополнительном коде. В каждом случае десятичная запись представлена 4-битовым кодом, а результат сложения опять переведен в десятичную систему счисления.

    

Обратим внимание на то, что согласно правилам традиционной алгебры, которые мы изучали в школе, то в третьем примере нам бы потребовалась совсем другая операция (вычитание). С другой стороны, в двоичном дополнительном коде мы можем вычислить результат, во всех случаях применяя алгоритм сложения.

    

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

    
 Сложение 

 в десятичной системе  счисления

 Сложение 

 в двоичном дополнительном коде

 Результат сложения в десятичной записи
 +4

 3

 +0100

   0011

 0111

 7
 +-2

 -3

 +1110

   1101

 1011

 -5
 +6

 -2

 +0110

   1110

 0100

 4
 
 
 
 
 
 
 
 
 
 

    

Рис. 1.11. Таблица  сложений чисел

    

Например, операция вычитания 7-5 аналогична операции сложения 7 + (-5). Следовательно, если потребуется вычесть 5 (с кодом 0101) из 7 (с кодом 0111), то машина, прежде всего, заменит 5 на -5 (с кодом 1011) и затем выполнит операцию сложения, результатом которой будет 0010, то есть код числа 2:

    

-7             -0111                  +0111

    

5              0101                   1011

    

2                                         0010

        1. Проблема  переполнения

    

Есть проблема в любом представлении чисел в двоичном дополнительном коде - ограничение на размер чисел, представляемых данным количеством битов. Например, нельзя получить правильного ответа, выполнив операцию сложения 5 + 4, если будем выполнять сложение в 4-битовом двоичном дополнительном коде. Ведь у числа 9 нет соответствующей записи. На самом деле мы получим ответ — 7. Такая ошибка называется переполнением (overilov), она возникает, когда нужно сохранить число, не попадающее в диапазон чисел, которые могут быть представлены в двоичном дополнительном коде. Переполнение возникает, когда нужно сложить два положительных или два отрицательных числа. В обоих случаях можно проверить, есть ли ошибка, посмотрев на знаковый разряд полученного результата, то есть переполнение возникает, если сумма двух положительных чисел имеет код отрицательного числа или сумма двух отрицательных чисел имеет код положительного числа.

    

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

2 147 438 647, прежде  чем возникнет переполнение. Если  нужно записать большее число,  то можно использовать более длинный код или можно изменить единицы измерения. Например, использование в расчетах километров, а не метров позволит уменьшить размер чисел и достичь необходимой точности вычислений.

    

Проблема состоит  в том, что компьютер может  ошибаться, и пользователь должен знать о возможной опасности такой ошибки. Программисты и пользователи из-за своей самоуверенности игнорируют тот факт, что маленькие числа могут складываться и порождать большие. Например, раньше было  принято  использовать  16-битовый двоичный код, который означал, что переполнение не возникнет, пока не появится значение 215 = 32 768. Например девятнадцатого сентября 1989 года компьютерная система в госпитале допустила ошибку после долгих лет надежной работы. Исследование показало, что тот день был 32 768-м днем после 1 января 1900 года. Как вы думаете, какова цена этой ошибки?

        1. Представление с избытком

    

Другой способ представления целочисленных значений называется представлением с избытком (excess notation). Коды, соответствующие числовым значениям, имеют одинаковую длину. Для того чтобы составить таблицу кодов, сначала нужно выбрать длину последовательности битов, затем выписывать эти наборы в прямом порядке. Можно заметить, что код с одной 1 в позиции старшего разряда находится примерно посередине списка. Пусть он будет представлением нуля; коды до него используются для представления 1, 2, 3 и т. д., коды после него используются для -1,-2, -3 и т. д. Окончательный вариант таблицы 4-битовых кодов  изображен в таблицах на рис 1.12. Можно заметить, что число 5 имеет код 1101, а число -5 имеет код 0011. Обратите внимание на то, что различие между представлением в двоичном дополнительном коде и избыточном коде заключается в том, что знаковый разряд у них имеет противоположное значение.

    

Таблица кодов, изображенная на рисунке 1.12, называется представлением с избытком восемь. Для того чтобы понять, почему это так, сначала переведём коды из таблицы в десятичную систему счисления, как обычный двоичный код, и сравним полученные значения со значениями в таблице. В каждом случае мы обнаружим, что полученный результат превосходит код в представлении с избытком на восемь. Например, последовательность 1100 в двоичной системе является кодом 12, но в представлении с избытком она является кодом 4; последовательность 0000 в двоичной системе является кодом 0, а в представлении с избытком — кодом 8. Точно так же 5-битовое представление с избытком будет называться представлением с избытком 16, так как, например, последовательность 10000  будет  кодом  0,  а не  16,  как в двоичной  записи.

Информация о работе Теоретические основы информатики