Представление информации в ЭВМ

Понятие чисел конечной точности, диапазоны представления чисел. Примеры позиционных систем счисления, однородные и неоднородные системы счисления, их свойства. Формы представления чисел в ЭВМ. Арифметические операции в двоичной системе счисления.

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 19.03.2015
Размер файла 961,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

1. ОБЩИЕ СВЕДЕНИЯ О ПРЕДСТАВЛЕНИИ ИНФОРМАЦИИ В ЭВМ

Объектом передачи и преобразования в ЭВМ является дискретная информация. Для представления её применяется так называемый алфавитный способ, основой которого является использование фиксированного конечного набора символов любой природы, называемого алфавитом [6, 13,18].

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

2006 АААА CARCASS SENTENCED ПАСКАЛЬ

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

В процессе ввода, хранения, вывода и обработки информации в ЭВМ осуществляется неоднократное её преобразование из одной формы представления в другую. При этом с каждой из используемых форм представления информации связаны различные алфавиты. Для представления информации на перфокартах и перфолентах используется, например, алфавит, включающий всего две буквы (есть пробивка, нет пробивки). Таким образом, процесс преобразования информации часто требует представлять буквы одного алфавита средствами (буквами, словами) другого алфавита. Такое представление называется кодированием.

Декодированием называется процесс обратного преобразования информации относительно ранее выполненного кодирования.

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

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

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

Различают коды равномерные и неравномерные. Кодовые комбинации равномерных двоичных кодов содержат одинаковое число двоичных знаков, неравномерных - не одинаковое. число счисление двоичный ЭВМ

Примером неравномерного двоичного кода может служить азбука Морзе, в которой для каждой буквы и цифры определена двоичная последовательность коротких и длинных сигналов. В азбуке Морзе буква Е, например, соответствует один короткий сигнал (точка), а букве Ш - четыре длинных сигнала (четыре тире). Неравномерное кодирование позволяет повысить скорость передачи сообщений за счёт того, что наиболее часто встречающимся в передаваемых текстах символам (к ним относится и буква Е) назначается для её представления более короткая комбинация.

В технике наибольшее применение нашли равномерные коды, как более удобные для реализации. Например, во втором международном телеграфном коде символы передаваемого алфавита кодируются последовательностями из пяти «токовых или безтоковых посылок».

В математике широко используется две формы записи чисел: естественная и нормальная.

При естественной форме число записывается в естественном натуральном виде, например: 12 560 - целое число, 0.003572 - правильная дробь, 4.89760 - неправильная дробь.

При нормальной форме запись одного числа может быть различной в зависимости от ограничений, накладываемых на её форму. Например, число 12560 может быть записано так:

12 560 = 1.256*104 = 0.1256*105 = 125 600*101 и т.д.

Так как числа бывают положительные и отрицательные, то в разрядной сетке при их машинном представлении один разряд отводится под знак числа, а остальные образуют поле числа. В знаковый разряд, который может располагаться как в начале, так и в конце числа, записывается информация о знаке числа. Примем, что знак положительного числа «+» изображается символом 0, а знак отрицательного числа «-» - символом 1. Если поле числа включает n разрядов, то диапазон представления целых чисел в этом случае ограничивается значениями -(2n-1) и (2n-1).

Представление чисел в ЭВМ в нормальной форме называют представлением числа в форме с плавающей запятой, так как положение запятой в записи числа в этом случае не является однозначным.

1.1 Числа конечной точности

Когда люди выполняют какие-либо арифметические действия, их не волнует вопрос, сколько десятичных разрядов занимает то или иное число. Физики, к примеру, могут вычислить, что во Вселенной присутствует 1078 электронов, и их не волнует тот факт, что полная запись этого числа потребует 79 десятичных разрядов. Никогда не возникает проблема нехватки бумаги для записи числа.

С компьютерами дело обстоит иначе. В большинстве компьютеров количество доступной памяти для хранения чисел фиксированно и зависит от того, когда был разработан этот компьютер. Если приложить усилия, программист сможет представлять числа в два, три и более раз большие, чем позволяет размер памяти, но это не меняет природы данной проблемы. Память компьютера ограничена, поэтому мы можем иметь дело только с такими числами, которые можно представить в фиксированном количестве разрядов. Такие числа называются числами конечной точности.

Рассмотрим ряд положительных целых чисел, которые можно записать тремя десятичными разрядами без десятичной запятой и без знака. В этот ряд входит ровно 1000 чисел: 000, 001, 002, 003,..., 999. При таком ограничении невозможно выразить определенные типы чисел. Сюда входят:

1) числа больше 999;

2) отрицательные числа;

3) дроби;

4) иррациональные числа;

5) комплексные числа.

Одно из свойств набора всех целых чисел - замкнутость по отношению к операциям сложения, вычитания и умножения. Другими словами, для каждой пары целых чисел i и j числа i+j, i-j и ij - то же целые числа. Ряд целых чисел не замкнут относительно деления, поскольку существуют такие значения i и j, для которых i/j не выражается в виде целого числа (например, 7/2 или 1/3).

Числа конечной точности не замкнуты относительно всех четырех операций. Ниже приведены примеры операций над трехразрядными десятичными числами:

600+600=1200 (слишком большое число);

003-005=-2 (отрицательное число);

050x050=2500 (слишком большое число);

007/002=3,5 (не целое число).

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

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

Алгебра чисел конечной точности отличается от обычной алгебры. В качестве примера рассмотрим ассоциативный закон

a+(b-c)=(a+b)-c.

Вычислим обе части выражения для а=700, b=400 и с=300. В левой части сначала вычислим значение (b-с). Оно равно 100. Затем прибавим это число к а и получим 800. Чтобы вычислить правую часть, сначала вычислим (а+b). Для трехразрядных целых чисел получится переполнение. Результат будет зависеть от компьютера, но он не будет равен 1100. Вычитание 300 из какого-то числа, отличного от 1100, не даст результата 800. Ассоциативный закон не имеет силы. Порядок операций важен.

Другой пример - дистрибутивный закон:

а(b-c)=ab-ac.

Сосчитаем обе части выражения для а=5, b=210 и с=195. В левой части 515=75. В правой части 75 не получается, поскольку ab выходит за пределы ряда.

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

Наиболее известными представителями непозиционных систем счисления являются иероглифические и алфавитные. Иероглифические - это такие системы счисления, у которых каждая цифра представлена своим символом, значком или иероглифом. Наиболее известной из них является римская система счисления.

Значение числа, записанного в римской системе счисления, определяется как сумма записанных подряд цифр, причем, если слева от цифры стоит меньшая цифра, то значение последней принимается со знаком минус, например: IX=9(10); XI=11(10), то есть здесь существует отклонение от правила независимости значения цифры от положения в числе. В настоящее время римская система используется в основном для целей нумерации. Запись числа в алфавитных системах строится по такому же принципу.

К основным недостаткам непозиционных систем счисления можно отнести:

1) отсутствие нуля;

2) необходимость содержания бесконечного количества символов;

3) сложность арифметических действий над числами.

Систему счисления называют позиционной, если значение цифры определяется ее положением в числе. Веса цифр в позиционной системе счисления различны и значение веса цифры зависит от номера ее позиции в числе. В общем случае вес Gi=f(p,i), где i - номер позиции в числе, p - целое число, отличное от нуля и называемое основанием системы счисления.

Десятичная система счисления наиболее распространена в вычислительной практике. Своему распространению она обязана наличию у человека на руках десяти пальцев.

1.2 Диапазоны представления чисел

Арифметические действия над числами приводят к взаимодействию между разрядами, поэтому используются позиционные системы счисления с простейшим постоянным соотношением между весами соседних разрядов. Веса разрядов подчиняются закону геометрической прогрессии. Знаменатель прогрессии р=const определяется основанием позиционной системы счисления (ССЧ).

Основание р определяет возможное количество цифр в любом из разрядов, то есть одно и то же число может быть представлено различным количеством разрядов. Чем меньше основание Р, тем больше разрядов требуется для изображения одного и того же числа. Например, 31(10)= 11111(2)=37(8).

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

Пусть длина разрядной сетки равна любому положительному числу, например N. Тогда максимальное число, которое можно представить в разрядной сетке заданной длины:

A(p)max = pN - 1. (2.1)

Однако, если задано максимальное абсолютное значение числа, то длина разрядной сетки

N=log(p) (A(p)max+1). (2.2)

Интервал числовой оси, заключенный между максимальным и минимальным числами, называют диапазоном представления (ДП) чисел в данной системе счисления для заданного ограничения на длину разрядной сетки

-A(p)max <= ДП <= A(p)max . (2.3)

Если предположить, что затраты на каждый разряд эквивалентны затратам на изображение одной цифры, то наименьшие затраты окажутся при использовании троичной системы счисления (р=3). Десятичная система по затратам не оптимальна, и для уменьшения затрат основание Р следует уменьшить. В ВМ используются в основном двоичная ССЧ с основанием р=2. Она позволяет наиболее простым способом изображать и хранить в разрядах любую из двух цифр на основе двухпозиционных схем и передавать информацию по линиям связи в форме наличия (одна цифра) или отсутствия (другая цифра) сигнала. Кроме того, двоичная ССЧ самым оптимальным способом изображает логику высказывания: истина - 1, ложь - 0. Логика высказывания является основой построения логических устройств и широко используется в программах.

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

В зависимости от принятых весов разрядов, изображаемые числа могут быть целыми, дробными или смешанными, содержащими целую и дробную части. Обычно ограничиваются или только целыми, или только дробными. Веса разрядов нигде не записываются, а только подразумеваются. У дробных чисел вес самого младшего разряда равен 2-m (m - число разрядов). Вес самого старшего разряда 2-m*2m-1=2-1. У целых чисел соответственно равен 20 - вес младшего разряда; 2m-1 - вес старшего разряда.

Максимальное значение изображаемого дробного числа

(2.4)

целого числа

. (2.5)

Если к максимальному значению изображаемого числа добавить одно минимальное дискретное значение - единицу младшего разряда, то изображение станет нулевым, то есть арифметические действия в вычислительных устройствах выполняются из условия сравнимости по модулю 2m или 20 (это неизбежно, потому что существуют ограничения разрядности чисел).

1.3 Позиционные системы счисления

Любая позиционная система счисления характеризуется основанием. Основание (базис) естественной позиционной системы счисления - число знаков или символов, используемых для изображения цифр в данной системе. Таким образом, основание позиционной системы счисления - это количество различных знаков или символов, используемых для изображения цифр в данной системе. За основание системы можно принять любое натуральное число - два, три, четыре и т.д. Возможно бесчисленное множество позиционных систем, так как за основание можно принять любое число, образовав новую систему. Например, возможна шестнадцатеричная система счисления, запись чисел в которой может производиться с помощью следующих знаков: 0, 1, ..., 9, А, В, С, Д, Е, F.

Обычное десятичное число состоит из цепочки десятичных разрядов и иногда десятичной запятой. Общая форма записи показана на рис. 2.1. Десятка выбрана в качестве основы возведения в степень (основание системы счисления), поскольку мы используем 10 цифр.

Рис. 2.1. Общая форма записи чисел

В компьютерах удобнее иметь дело с другими основаниями системы счисления. Самые важные из них - 2, 8 и 16. Соответствующие системы счисления называются двоичной, восьмеричной и шестнадцатеричной соответственно.

k-ричная система требует k различных символов для записи разрядов с 0 по k-i. Десятичные числа строятся из 10 десятичных цифр:

0123456789

Двоичные числа, напротив, строятся только из двух двоичных цифр:

01

Восьмеричные числа состоят из восьми цифр:

01234567

Шестнадцатеричные числа строятся из следующих цифр и символов:

0123456789ABCDEF

Двоичный разряд (то есть 1 или 0) обычно называют битом. На рисунке 2.2 десятичное число 2001 представлено в двоичной, восьмеричной и шестнадцатеричной системе. Число 7В9 очевидно шестнадцатеричное, поскольку символ В встречается только в шестнадцатеричных числах. А число 111 может быть в любой из четырех систем счисления. Чтобы избежать двусмысленности, нужно использовать индекс для указания основания системы счисления.

Рис. 2.2. Примеры представления чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления

В таблице 2.1 в качестве примера ряд неотрицательных целых чисел представлен в каждой из четырех систем счисления.

Таблица. 2.1

Десятичные числа и их двоичные, восьмеричные и шестнадцатеричные эквиваленты

Десятичная10

Двоичная2

Восьмеричная8

Шестнадцатеричная16

0

00000

000

00

1

00001

001

01

2

00010

002

02

3

00011

003

03

4

00100

004

04

5

00101

005

05

6

00110

006

06

7

00111

007

07

8

01000

010

08

9

01001

011

09

10

01010

012

A

11

01011

013

B

12

01100

014

C

13

01101

015

D

14

01110

016

E

15

01111

017

F

16

10000

020

10

17

10001

021

11

18

10010

022

12

19

10011

023

13

20

10100

024

14

21

10101

025

15

22

10110

026

16

23

10111

027

17

24

11000

030

18

25

11001

031

19

26

11010

032

1A

27

11011

033

1B

28

11100

034

1C

29

11101

035

1D

30

11110

036

1E

31

11111

037

1F

40

101000

50

28

50

110010

62

32

60

111100

74

ЗС

70

1000110

106

46

80

1010000

120

50

90

1011010

132

100

11001000

144

64

1000

1111101000

1750

ЗЕ8

2989

101110101101

5655

BAD

Запись чисел в каждой из систем счисления с основанием p означает сокращенную запись выражения

an-1pn-1+an-2pn-2+.. +a1p1+a0p0+a-1p-1+ ...+a-mp-m, (2.6)

где ai - цифры системы счисления; n и m - число целых и дробных разрядов соответственно.

В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0, 2 больше 1 и т.д.

В любой системе счисления число изображается в виде набора знаков (цифр)

am-1, am-2,…, a1, a0. (2.7)

В этих наборах цифра ai определяет значение разряда i. При ручном счете количество разрядов не регламентируется; в вычислительных устройствах оно заранее устанавливается исходя из требований точности вычислений и допустимому объему аппаратуры. Память компьютера ограничена, поэтому мы можем иметь дело только с такими числами, которые можно представить в фиксированном количестве разрядов. Напомним, что такие числа называют числами конечной точности.

Каждый разряд i характеризуется своим весом pi

, (2.8)

где pi - целочисленное значение весов разрядов; ai - значение цифр разрядов, определяющих сколько раз надо повторить веса, чтобы определить долю данного разряда в значении числа.

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

1.4 Однородные и неоднородные системы счисления

Различают однородные и неоднородные системы счисления. В неоднородных системах счисления Gi не зависят друг от друга и могут принимать любые значения. Эти системы еще называют системами со смешанным основанием. В неоднородных системах счисления в каждом i-м разряде количество допустимых символов может быть различно, при этом 0aipi-1, где pi - основание системы в i-м разряде.

В общем виде число A может быть представлено следующим образом:

A = an pn-1 ... p1 + an-1 pn-2 ... p1 + ... + a2 p1 + a1, (2.9)

где ai - цифра i-го разряда числа, причем есть база системы счисления;

- вес i-го разряда числа.

Примером неоднородной системы счисления может служить система счисления времени, для которой p0=1 c; p1=60 c; p2=60 мин; p3 =24 ч; p4 =365 сут. Например, время в 2 года 25 суток 14 часов 35 мин 48 секунд, выраженное в единицах младшего разряда - секундах, определится по формуле (2.9):

A = 23652460601+252460601+1460601+35601+481.

Специально для применения в ЭВМ была создана неоднородная двоично-пятеричная система, в которой в нечетных разрядах основание p1=5 (ai=0-4), а в четных разрядах основание p2=2 (ai=0,1). Так как произведение весов двух соседних (четного и нечетного) разрядов равно десяти, то двумя двоично-десятичными разрядами можно кодировать одну десятичную цифру (табл. 2.2).

Таблица. 2.2

Кодирование десятичных цифр в двоично-пятеричной системе

a(10)

a(2-5)

a(10)

a(2-5)

0

00

5

10

1

01

6

11

2

02

7

12

3

03

8

13

4

04

9

14

Пример. Записать число 748(10) в двоично-пятеричной системе счисления.

Решение. Исходя из значений 710=12(2-5), 410=04(2-5), 810=13(2-5), представленных в таблице 2.2, получим A(10) = 12 04 13(2-5).

Произведем обратное преобразование. Здесь n = 6, основания p1 = 5; p2 = 2; p3 = 5; p4 = 2; p5 = 5; p6 = 2, а цифры a1 = 3; a2 = 1; a3 = 4; a4 = 0; a5 = 2; a6 = 1. Для вычисления количественного эквивалента числа А подставим эти значения в формулу (2.9).

A = 1· 5· 2· 5· 2· 5 + 2· 2· 5· 2· 5 + 0· 5· 2· 5 + 4· 2· 5 + 1· 5 + 3 = 500 + 200 + 0 + 40 + 5 + 3 = 748(10).

На практике используют сокращенную запись чисел

A(a) = an-1 ... a1a0a-1 ... a-m. (2.10)

В настоящее время, в основном используются позиционные системы счисления, в которых pi = pj при всех i и j. В них веса отдельных разрядов представляют собой степень основания, равную номеру позиции, то есть однородные системы счисления.

1.5 Свойства систем счисления

Системы счисления имеют следующие свойства:

1. Отношение весов соседних разрядов равно основанию системы счисления, то есть основание системы счисления p показывает, во сколько раз значение одной цифры (i+1)-го разряда превышает значение одной цифры i-го разряда.

2. Для любой системы счисления справедливо, что ее основание изображается символами 10 в своей системе, то есть любое число в своей системе p можно записать символами этой системы в виде

A(p) = an-1·10n-1 + an-2·10n-2 +...+ a0·100 + a-1·10-1 +...+ a-m·10-m.

3. Умножение (деление) числа на целую степень, равную k, основания системы счисления p приводит к сдвигу запятой вправо (влево) на k разрядов, например:

A· p = an-1 an-2...a1a0, a-1 a-2...a-m (p) · p1= an-1 an-2...a1a0 a-1, a-2...a=

= an-1 an-2...a1, a0 a-1 a-2...a-m (p).

4. Общее количество различных n-разрядных p-ричных чисел равно pn.

5. Определение наибольшего значения числа A, осуществляется следующим путем: в формулу (2.9) подставляют максимальное значение цифры:

 Amax = (p-1)·pn-1+(p-1)·pn-2+...+(p-1)·p+(p-1)+(p-1)·p-1+...

+(p-1)· p-m = pn-1+1-p-m = pn-p-m.

1.6 Выбор системы счисления

Выбор числа десять в качестве основания системы счисления исторически связан с числом пальцев на руках человека. Однако десятичная система счисления не является наиболее удобной с точки зрения ее реализации в ЭВМ. При анализе систем счисления на предмет их применения в ЭВМ учитываются следующие факторы:

1. Наличие физических элементов, способных изобразить символы системы.

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

3. Трудоемкость выполнения арифметических операций в ЭВМ.

4. Быстродействие вычислительных устройств.

5. Наличие формального математического аппарата для анализа и синтеза вычислительных устройств.

6. Удобство работы человека с машиной.

7. Наибольшую помехоустойчивость кодирования цифр на носителях информации.

Наличие физических элементов, способных изобразить символы системы. Любой из символов, применяемых для записи чисел, должен в ЭВМ изображаться в виде одного или нескольких состояний какого-то физического элемента. Очевидно, что элемент будет тем проще, чем меньше состояний ему требуется иметь, то есть чем меньше основание системы счисления. Например, для реализации двоичной системы можно использовать любой простой элемент с двумя устойчивыми состояниями. Такими элементами являются: реле, конденсаторы, магнитные, полупроводниковые элементы, триггерные схемы и т.п. В настоящее время имеющиеся элементы с более чем двумя устойчивыми состояниями имеют существенные недостатки по основным параметрам (надежность, быстродействие, габариты, стоимость). Таким образом, по этому критерию наиболее пригодной для ЭВМ является двоичная система счисления.

Экономичность системы счисления оценивается числом цифроразрядов, необходимых для изображения чисел в машине. Для представления в ЭВМ любого n-разрядного числа в системе счисления с основанием p можно использовать:

· n физических элементов с p устойчивыми состояниями;

· nk физических элементов с двумя устойчивыми состояниями, где k - минимально необходимое число двоичных разрядов, необходимых для кодирования любой p-ичной цифры.

Оценка экономичности той или иной системы счисления показала, что по критерию экономичности наиболее приемлемой является система счисления с основанием = 3. Затем следуют системы с p = 2 и = 4, которые уступают ей на 5,8%. Однако ввиду того, что троичный элемент менее надежен, чем двоичный, приходится оборудование для одного троичного разряда, как правило, увеличивать в два раза, то есть хранить троичный разряд в двух двоичных. С учетом этого наиболее экономичной оказывается двоичная система.

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

Быстродействие вычислительных устройств. Этот критерий находится в прямой зависимости от простоты арифметических операций. Очевидно также, что с увеличением числа цифр в системе счисления быстродействие ЭВМ при прочих равных условиях будет падать. Исследование показали, что ЭВМ, работающая в двоичной системе счисления, характеризуется более высоким быстродействием относительно троичной на 26,2% и относительно десятичной - в 2,7 раза.

Наличие формального математического аппарата для анализа и синтеза вычислительных устройств. Таким аппаратом является алгебра логики. Наибольшее развитие и законченность изучения, вследствие своей простоты и широкого практического применения получила двоичная логика.

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

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

Таким образом, исходя из перечисленных критериев, наиболее приемлемой для ЭВМ является двоичная система счисления. Однако в некоторых случаях при синтезе вычислительного устройства какому-либо критерию придается большее значение, чем остальным. Тогда для применения выбирается система счисления, оптимальная по выбранному критерию.

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

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

1.7 Преобразование чисел в системах счисления

При подготовке вычислений на ЭВМ необходимы прямые и обратные преобразования между двоичными и десятичными числами. Эти преобразования различны для целых и дробных чисел.

Пусть целое десятичное число А разложено по другому основанию ССЧ p:

. (2.11)

Если А разделить на p, то получится число , и в остатке а0, равное значению младшего разряда числа А и записанное в новой р-ричной ССЧ.

При этом

. (2.12)

Структура А1 такая же, как А в формуле (2.11), поэтому путем повторных преобразований можно последовательно определить значения разрядов а1, а2, а3,… , аm-1.

Таким образом, первый способ перевода основан на делении числа на 2. Частное записывается непосредственно под исходным числом, а остаток (0 или 1) записывается рядом с частным. То же проделывается с полученным частным. Процесс повторяется до тех пор, пока не останется 0. В результате должны получиться две колонки чисел - частных и остатков. Двоичное число можно считать из колонки остатков снизу вверх. На рисунке 2.3 показано, как происходит преобразование из десятичной в двоичную систему с помощью операции деления.

Преобразование десятичного числа 1492 в двоичное производится путем последовательного деления (сверху вниз). Например, 93 делится на 2, получается 46 и остаток 1. Остаток записывается в строку внизу.

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

Рис. 2.3. Преобразование десятичного числа в двоичное

Соответствующие степени числа два представлены следующим рядом:

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

29310=[28+25+22+20+28]= 1001001012

Чтобы преобразовать двоичное число в восьмеричное, нужно разделить его на группы по три бита, причем три бита непосредственно слева от двоичной запятой формируют одну группу, следующие три бита слева от этой группы формируют вторую группу и т. д. Каждую группу по три бита можно преобразовать в один восьмеричный разряд со значением от 0 до 7 (см. табл. 2.1). Чтобы дополнить группу до трех битов, нужно спереди приписать один или два нуля. Преобразование из восьмеричной системы в двоичную тоже тривиально. Каждый восьмеричный разряд просто заменяется эквивалентным 3-битным числом. Преобразование из 16-ричной в двоичную систему, по сути, сходно с преобразованием из 8-ричной в двоичную систему, только каждый 16-ричный разряд соответствует группе из четырех битов, а не из трех. На рисунке 2.4 приведены примеры преобразований из одной системы в другую.

Рис. 2.4. Примеры преобразования двоичных чисел

Двоичные числа можно преобразовывать в десятичные двумя способами. Первый способ - суммирование степеней двойки, которые соответствуют биту 1 в двоичном числе. Например:

10110=24+22+21=16+4+2=22

Второй способ. Двоичное число записывается вертикально по одному биту в строке, крайний левый бит находится внизу. Самая нижняя строка -- это строка 1, затем идет строка 2 и т. д. Десятичное число строится напротив этой колонки. Сначала обозначим строку 1. Элемент строки п состоит из удвоенного элемента строки n-1 плюс бит строки n (0 или 1). Элемент, полученный в самой верхней строке, и будет ответом. Метод проиллюстрирован на рис. 2.5.

Рис. 2.5. Преобразование двоичного числа в десятичное с помощью последовательного умножения

На рис. 2.5 двоичное число 101110110111 преобразуется в десятичное путем последовательного удваивания снизу вверх. В каждой следующей строке удваивается значение предыдущей строки и прибавляется соответствующий бит. Число 374 умножается на 2 и прибавляется бит соответствующей строки (в данном случае 1). В результате получается 749 и т.д.

Преобразование из десятичной в восьмеричную или 16-ричную систему можно выполнить либо путем преобразования сначала в двоичную, а затем в нужную нам систему, либо путем вычитания степеней 8 или 16.

Для перевода правильных дробей из системы счисления с основанием p1 в систему с основанием p2 используется метод, базирующийся на умножении переводимой правильной дроби на основание p2 новой системы счисления. Правильная дробь A(p1) в системе с основанием p2 может быть записана в виде

. (2.13)

Если правую часть выражения умножить на p2, то найдем неправильную дробь, в целой части которой будет число a-1. Умножив затем оставшуюся дробную часть на величину основания p2, получим дробь, в целой части которой будет a-2 и т.д. Повторяя процесс умножения m раз, найдем все m цифр дробной части числа в новой системе счисления. При этом все действия должны выполняться по правилам арифметики и, следовательно, в целой части получающихся дробей будут появляться эквиваленты цифр новой системы счисления, записанные в исходной системе счисления.

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

Пример. А10=0.752 перевести с точностью до 6 двоичных разрядов.

0.752100.1100002

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

Двоичные числа неудобны в обращении из-за большой разрядности, особенно при вводе в ЭВМ. Поэтому в ВТ находят широкое применение в качестве промежуточных 2p-ричные ССЧ (p=2, p=3, p=4), в каждой из которых могут быть записаны любые из 2p цифр. В свою очередь, любая 2p-ричная цифра может быть изображена комбинацией из p двоичных цифр. Таким образом, группируя двоичное число по p разрядам, можно элементарным способом переходить из двоичной системы в 2p-ричную и наоборот. Наиболее широко используются восьмеричная (p=3)

p=3 0,1,2,3,4,5,6,7

и шестнадцатеричная (p=4)

p=4 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

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

Представление чисел в восьмеричной и шестнадцатеричной системе счисления мы рассмотрим в следующем пункте.

1.8 Восьмеричная и шестнадцатеричная системы

Напомним, что восьмеричная и шестнадцатеричная системы счисления относятся к двоично-кодированным системам, когда основание системы счисления p представляет целую степень двойки:

p = 8 =23 - для восьмеричной,

p = 16 = 24 - для шестнадцатеричной.

База восьмеричной системы счисления использует для изображения чисел восемь цифр: 0, 1, 2, 3, 4, 5, 6, 7, то есть . Основание p = 8(10) = 10(8). Если восьмеричное число записать в развернутом виде в виде суммы значений цифр и выполнить арифметические действия по правилам десятичной системы, то получим десятичный эквивалент восьмеричного числа. Например, 125,4(8) = 1· 8+ 2· 8+ 5· 8+ 4· 8-1 = 85,5(10).

В шестнадцатеричной системе для записи чисел используются цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и прописные латинские буквы A, B, C, D, E, F, имеющие значение десятичных чисел 10, 11, 12, 13, 14, 15 соответственно. Поэтому шестнадцатеричное число может иметь, например, вид 3E5,C(16). Представляя это число в развернутом виде, получим

3E5,C(16) = 3· 162 + E· 161 + 5· 160 + C· 16-1.

Выполняя арифметические операции по правилам десятичной системы и принимая во внимание, что E=14, C=12, получим 3E5,C(16) = 560,75(10).

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

Приведем примеры:

а) перевод двоичного числа 1101111001,1101 в восьмеричное:

б) перевод двоичного числа 11111111011,100111 в шестнадцатеричное:

Восьмеричная и шестнадцатеричная системы счисления используются в текстах программ для более короткой и удобной записи двоичных кодов команд, адресов и операндов. Особенно удобно использовать шестнадцатеричную систему, когда разрядность чисел и команд выбрана кратной байту, при этом каждый двоичный код байта записывается в виде двухразрядного шестнадцатеричного числа. Кроме того, эти системы применяются в ЭВМ при некоторых формах представления чисел.

1.9 Отрицательные двоичные числа

На протяжении всей истории цифровых компьютеров для репрезентации отрицательных чисел использовались четыре различные системы. Первая из них называется системой со знаком. В такой системе крайний левый бит - это знаковый бит (0 - это «+», а 1 - это «-»), а оставшиеся биты показывают абсолютное значение числа.

Во второй системе, которая называется дополнением до единицы, тоже присутствует знаковый бит (0 - это плюс, а 1 - это минус). Чтобы сделать число отрицательным, нужно заменить каждую 1 на 0 и каждый 0 на 1. Это относится и к знаковому биту. Система дополнения до единицы уже устарела.

Третья система, дополнение до двух, содержит знаковый бит (0 - это «+», а 1 - это «-»). Отрицание числа происходит в два этапа. Сначала каждая единица меняется на 0, а каждый 0 - на 1 (как и в системе дополнения до единицы). Затем к полученному результату прибавляется 1. Двоичное сложение происходит точно так же, как и десятичное, только перенос совершается в том случае, если сумма больше 1, а не больше 9. Например, рассмотрим преобразование числа 6 в форму с дополнением до двух:

00000110 (+6);

11111001 (-6 в системе с дополнением до единицы);

11111010 (-6 в системе с дополнением до двух).

Если нужно совершить перенос из крайнего левого бита, он просто отбрасывается.

В четвертой системе, которая для m-битных чисел называется excess 2m-1, число представляется как сумма этого числа и 2m-1. Например, для 8-битного числа (т=8) система называется excess 128, а число сохраняется в виде суммы исходного числа и 128. Следовательно, -3 превращается в -3+128=125, и это число (-3) представляется 8-битным двоичным числом 125 (01111101). Числа от -128 до +127 выражаются числами от 0 до 255 (все их можно записать в виде 8-битного положительного числа). Отметим, что эта система соответствует системе с дополнением до двух с обращенным знаковым битом. В таблице 2.3 представлены примеры отрицательных чисел во всех четырех системах.

Таблица 2.3

Отрицательные 8-битные числа в четырех различных системах

N десятичное

N двоичное

-N в системе со знаком

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

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

-N excess 128

1

00000001

10000001

11111110

11111111

011111111

2

00000010

10000010

11111101

11111110

01111110

3

0000001 1

10000011

11111100

11111101

01111101

4

00000100

10000100

11111011

11111100

01111100

5

00000101

10000101

11111010

11111011

01111011

6

00000110

10000110

11111001

11111010

01111010

7

00000111

10000111

11111000

11111001

01111001

8

00001000

10001000

11110111

11111000

01111000

9

00001001

10001001

11110110

11110111

01110111

10

00001010

10001010

11110101

11110110

01110110

20

00010100

10010100

11101011

11101100

01101100

30

00011110

10011110

11100001

11100010

01100010

40

10101000

10101000

11010111

11011000

01011000

50

00110010

10110010

11001101

11001110

01001110

60

00111100

10111100

11000011

11000100

01000100

70

01000110

11000110

10111001

10111010

00111010

80

01010000

11010000

10101111

10110000

00110000

90

01011010

11011010

10100101

10100110

00100110

100

01100100

11100100

10011011

10011100

00011100

127

01111111

11111111

10000000

10000001

00000001

128

Не сущест.

Не сущест.

Не сущест.

10000000

00000000

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

1.10 Двоично-кодированная десятичная система счисления (D-коды)

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

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

Двоично-кодированная десятичная система является комбинированной системой счисления, которая обладает достоинствами двоичной и удобством десятичной системы.

D-код - это двоично-кодированное представление десятичного числа, в котором каждая десятичная цифра представляется тетрадой из двоичных символов.

Количество различных двоичных тетрад N = 24 = 16. Для кодирования двоичных цифр из них используется только десять. Наличие избыточных комбинаций позволяет иметь различные D-коды. В ЭВМ наибольшее применение нашли системы кодирования 8421 - D1, 2421 - D2, (8421+3) - D4. Появляющаяся избыточность приводит к множеству кодирования десятичных цифр, из которых следует выбирать оптимальную.

Код 8421 (табл. 2.4) называется кодом с естественными весами, где цифры 8,4,2,1 - веса двоичных разрядов тетрад. Любая десятичная цифра в этом коде изображается ее эквивалентом в двоичной системе счисления. Этот код нашел наибольшее применение при кодировании десятичных чисел в устройствах ввода-вывода и при построении операционных устройств десятичной арифметики.

Особенность кодов D2 и D4 (8421+3) или кода с избытком 3 в том, что кодирование любой десятичной цифры и дополнительной к ней цифры до 9 осуществляется взаимно дополняющими тетрадами. Эта особенность дает простой способ получения дополнения до 9 путем инвертирования двоичных цифр тетрады. Такие коды удобно использовать для организации операции вычитания при построении десятичных сумматоров.

Таблица 2.4

Примеры кодирования десятичных цифр тетрадами

Десятичная цифра

Эквиваленты в D-кодах

D1 (8421)

D2 (2421)

D4 (8421+3)

0

0000

0000

0011

1

0001

0001

0100

2

0010

0010

0101

3

0011

0011

0110

4

0011

0100

0111

5

0101

1011

1000

6

0110

1100

1001

7

0111

1101

1010

8

1000

1110

1011

9

1001

1111

1100

Приведем пример кодирования десятичного числа A = 8371 в двоично-кодированной десятичной системе счисления:

D1: A = 1000 0011 0111 0001(2/10);

D2: A = 1110 0011 1101 0001(2/10);

D4: A = 1011 0110 1010 0100(2/10).

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

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

Невыполнение данного требования приводит к неоднозначности результатов.

2. Упорядоченность. Большим десятичным цифрам должны соответствовать большие тетрады десятичного кода и, наоборот, меньшим - меньшие тетрады.

Выполнение данного требования необходимо для организации количественного сравнения цифр в десятичных разрядах.

3. Четность. Четным цифрам должны соответствовать четные тетрады, нечетным цифрам - нечетные тетрады. Соответствие может быть отмечено любым способом.

Выполнение данного требования необходимо для выполнения округления результата.

4. Дополнительность. Если x1 и х2 - такие две цифры, для которых х12 = 9 и цифре x1 сопоставляется тетрада , то цифре х2, если удовлетворяется требование дополнительности, должна сопоставляться тетрада , получаемая путем инверсии двоичных разрядов кода цифры х1.

Требование дополнительности необходимо для упрощения реализации дополнительных и обратных кодов десятичных чисел.

5. Весомозначность. Должны существовать четыре целых положительных числа: pз,р2,p1,p0, называемых весами, с помощью которых можно определить десятичную цифру х по значению двоичной тетрады , сопоставленной х, по формуле


Подобные документы

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

    курсовая работа [232,6 K], добавлен 16.01.2012

  • Понятие и классификация систем счисления. Перевод чисел из одной системы счисления в другую. Перевод правильных и неправильных дробей. Выбор системы счисления для применения в ЭВМ. Навыки обращения с двоичными числами. Точность представления чисел в ЭВМ.

    реферат [62,0 K], добавлен 13.01.2011

  • Двоичный код, особенности кодирования и декодирования информации. Система счисления как совокупность правил записи чисел с помощью определенного набора символов. Классификация систем счисления, специфика перевода чисел в позиционной системе счисления.

    презентация [16,3 K], добавлен 07.06.2011

  • Примеры правила перевода чисел с одной системы в другую, правила и особенности выполнения арифметических операций в двоичной системе счисления. Перевод числа с десятичной системы в двоичную систему счисления. Умножение целых чисел в двоичной системе.

    контрольная работа [37,3 K], добавлен 13.02.2009

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

    лабораторная работа [142,3 K], добавлен 06.07.2009

  • Порождение целых чисел в позиционных системах счисления. Почему мы пользуемся десятичной системой, а компьютеры - двоичной (восьмеричной и шестнадцатеричной)? Перевод чисел из одной системы в другую. Математические действия в различных системах счисления.

    конспект произведения [971,1 K], добавлен 31.05.2009

  • Обработка информации и вычислений в вычислительной машине. Непозиционные и позиционные системы счисления. Примеры перевода десятичного целого и дробного числа в двоичную систему счисления. Десятично-шестнадцатеричное и обратное преобразование чисел.

    контрольная работа [41,2 K], добавлен 21.08.2010

  • Характеристика методов представления заданных чисел в двоичной, шестнадцатеричной, восьмеричной системе счисления. Представление указанного числа в четырехбайтовом IEEE формате. Разработка алгоритма обработки одномерных и двумерных числовых массивов.

    контрольная работа [138,9 K], добавлен 05.06.2010

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

    контрольная работа [1,2 M], добавлен 23.10.2009

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

    курсовая работа [59,9 K], добавлен 31.05.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.