Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_модуль_1 МПТ.doc
Скачиваний:
11
Добавлен:
12.02.2016
Размер:
985.09 Кб
Скачать

1.2.Системы счисления

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

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

Такие системы счисления называются позиционными системами счисления по основанию [2]. В этих системах используется конечный набор символов, каждый символ называется цифрой и обозначает некоторое количество. Число различных цифр в наборе называется основанием системы счисления. Чтобы получить какое-либо число, необходимо цифры записать рядом. Относительной позиции цифры в числе ставится в соответствие весовой множитель (коэффициент).

В десятичной системе счисления 10 цифр: 0, 1, … 9. Представление числа в десятичной системе счисления можно представить следующим образом в виде полинома. Например, число 678 будет иметь вид:

Здесь цифра 6 входит с весом 100, цифра 7 – с весом 10, цифра 8 – с весом 1.

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

, (1.1)

где - цифры числа; - весовые коэффициенты.

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

Таблица 1.1, Системы счисления

Основание

Система счисления

Обозна-чение

Цифровые символы

2

Двоичная

b

0,1

3

Троичная

0,1,2

4

Четверичная

0,1,2,3

5

Пятеричная

0,1,2,3,4

8

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

o

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

10

Десятичная

d

0,1,2,3,4,5,6,7,8,9

12

Двенадцатеричная

0,1,2,3,4,5,6,7,8,9,A,B

16

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

h

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

Наибольшее применение в вычислительной технике, наряду с десятичной системой счисления, получили двоичная, восьмеричная и шестнадцатеричная системы счисления. Для различия систем счисления применяют следующие обозначения: 100(10), 100(d) – число представлено в десятичной системе счисления; 100(2), 100(b) - число представлено в двоичной системе счисления; 100(8), 100(o) - число представлено в восьмеричной системе счисления;

100(16), 100(h) - число представлено в шестнадцатеричной системе счисления.

1.3.Двоичная система счисления

Двоичная система счисления использует только две цифры 0 и 1, что позволяет использовать эту систему счисления техническими устройствами для выполнения арифметических операций [3]. Данные технические устройства имеют два устойчивых состояния: включено-выключено, низкий-высокий уровень.

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

Представление двоичных чисел и их перевод в десятичное число осуществляется по выражению (1.1)

1011012 = 1*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20 = = 1*32 + 0*16 + 1*8 + 1*4 + 0*2 +1*1 = 4510

При записи двоичного числа каждая позиция занята двоичной цифрой, которая называется битом. Слово бит искусственное, оно произошло как сокращение от двух слов: binary digit (двоичная единица) - bit.

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

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

35:2=17 остаток 1 = a0 17:2=8 остаток 1 = a1 8:2 =4 остаток 0 = a2

4:2 =2 остаток 0 = a3

2:2 =1 остаток 0 = a4 1 = a5

Таким образом, двоичное число будет иметь вид a5a4a3a2a1a0

1000112 = 1*25 + 0*24 + 0*23 + 0*22 + 1*21 + 1*20 = 1*32 + 0*16 + 0*8 + 0*4 + 1*2 +1*1 = 3510

1.4.Шестнадцатеричная система счисления

В шестнадцатеричной системе счисления используются 16 цифр: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Шестнадцатеричная система счисления используется как средство сокращенной записи 4-х разрядного двоичного числа. В таблице 1.2 приведены шестнадцатеричные числа и их двоичные и десятичные эквиваленты.

Таблица 1.2

Шестнадца- теричное число

Двоичное число

Десятичное число

Шестнадца- теричное число

Двоичное число

Десятичное число

0

0000

0

10

10000

16

1

0001

1

11

10001

17

2

0010

2

12

10010

18

3

0011

3

13

10011

19

4

0100

4

14

10100

20

5

0101

5

15

10101

21

6

0110

6

16

10110

22

7

0111

7

17

10111

23

8

1000

8

18

11000

24

9

1001

9

19

11001

25

A

1010

10

1A

11010

26

B

1011

11

1B

11011

27

C

1100

12

1C

11100

28

D

1101

13

1D

11101

29

E

1110

14

1E

11110

30

F

1111

15

1F

11111

31

Преобразование двоичного числа в шестнадцатеричное число заключается в том, что биты, начиная с младшего значащего бита, объединяются в группы по четыре. Каждой группе подбирается соответствующий шестнадцатеричный символ. Например, чтобы представить двоичное число 1010101111111012 в виде шестнадцатеричного числа необходимо слева добавить два незначащих нуля с целью формирования битов в группы по четыре: 0010 1010 1111 1101. Заменив каждую группу битов соответствующим шестнадцатеричным символом, получим число 2AFD16.

Данная форма записи намного проще и воспринимается легче, чем двоичная.

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

Представление шестнадцатеричного числа в виде двоичного также осуществляется по выражению (1.1).

2AFD16 = 2*163 + A*162 + F*161 + D*160 = 2*4096 + 10*256 + 15*16 + 13*1 =

8192 + 2560 + 240 + 13 = 1100510

101010111111012 = 1*213 + 0*212 + 1*211 +0*210 + 1*29 +0*28 + + 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 +0*21 +1*20 = = 8192 + 0 + 2048 + 0 + 512 + 0 + 128 + 64 + 32 + 16 + + 8 + 4 + 0 + 1 = 1100510

1.5. Двоичная арифметика

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

Сложение двух двоичных чисел

a

b

a+b

0

0

0

1

0

1

0

1

1

1

1

10

1+1+1

11

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

Прибавление единицы к старшему разряду в результате переполнения соседнего, младшего разряда называют переносом.

Сложение двоичных чисел выполняется по тем же правилам, что и сложение десятичных чисел. Например, сложение двоичных чисел 1101010 и 1101100 происходит следующим образом. В первом младшем разряде слагаемыми являются 0 и 0, результат получается 0. Во втором разряде к 1 прибавляется 0, результат получается 1. В третьем разряде к 0 прибавляется 1, результат получается 1. В четвертом разряде результатом сложения 1 с 1 является 10. Единицу переноса записываем над пятым разрядом, в котором суммирование 1,0 и 0 дает в результате 1. В шестом разряде снова суммируются 1 и 1, результат получается 10. Аналогичным образом единицу переноса записываем над седьмым разрядом, в котором теперь необходимо сложить три единицы. Результат есть 11. Единицу переноса располагаем над восьмым разрядом, который пуст для обоих слагаемых, поэтому в результате сложения в восьмом разряде появится 1. Порядок сложения приведен на рис.1.1.

Разряд

8

7

6

5

4

3

2

1

ЧислоА

1

1

0

1

0

1

0

Число В

1

1

0

1

1

0

0

Сумма

1

1

0

Разряд

8

7

6

5

4

3

2

1

Перенос

1

ЧислоА

1

1

0

1

Число В

1

1

0

1

Сумма

1

(1)0

Разряд

8

7

6

5

4

3

2

1

Перенос

1

1

ЧислоА

1

1

Число В

1

1

Сумма

1

(1)1

(1)0

Рис.1.1. Схема сложения двух чисел.

Вычитание двоичных чисел

Вычитание десятичных чисел является более привычным и на их примере можно понять механизм вычитания двоичных чисел. Например, вычтем 17283 (вычитаемое) из числа 909009 (уменьшаемого). Вычитание начинают с самого правого разряда. Вычитая 3 из 9, получаем 6.

Разряд

6

5

4

3

2

1

Число А

9

0

9

0

0

9

Число В

1

7

2

8

3

Разность

6

Разряд

6

5

4

3

2

1

Число А

9

0

8

9

(10)

Число В

1

7

2

8

Разность

1

7

2

Разряд

6

5

4

3

2

1

Число А

9

(10)

Число В

1

Разность

8

9

Рис.1.2. Схема вычитания двух десятичных чисел

В следующем разряде необходимо вычесть 8 из 0, что непосредственно сделать невозможно, так как 8 > 0. Чтобы осуществить дальнейшие вычисления необходимо обратиться к разрядам, расположенным слева, для нахождения числа, не равного 0. В данном случае таким числом будет 9. Занимаем 1 из 9, в результате чего в четвертом разряде вместо 9 появляется 8, в третьем разряде вместо 0 появляется 9, во втором разряде – 10.

Теперь во втором разряде из 10 можно отнять 8, получив 2. В третьем разряде нужно вычесть 2 из 9, получим 7. В четвертом разряде вычитаем 7 из 8, получаем 1. В пятом разряде нужно вычесть 1 из 0. Для этого необходимо опять занять 1, двигаясь влево до тех пор, пока не дойдем до первого ненулевого разряда. В нем 9 заменяем на 8, а вместо 0 в пятом разряде получаем 10. Теперь вычисления можно продолжить.

Для двоичных чисел процесс вычисления приведен на рис.1.3.

Разряд

8

7

6

5

4

3

2

1

ЧислоА

1

0

0

1

0

0

0

1

Число В

1

1

1

1

1

1

Разность

0

Разряд

8

7

6

5

4

3

2

1

ЧислоА

1

0

0

0

1

1

(10)

Число В

1

1

1

1

1

Разность

0

0

1

Разряд

8

7

6

5

4

3

2

1

ЧислоА

0

1

1

(10)

Число В

1

1

Разность

0

1

0

1

Результат вычисления в правом разряде 1-1 = 0. Во втором разряде вычесть 1 из 0 просто так не удастся, и поэтому просматриваем разряды справа налево до тех пор, пока не найдем 1. Добавляем 1 к 0 во втором разряде, что дает 10 (один, нуль). Числу 102 соответствует десятичное число 2. Нули, которые стоят между двумя разрядами, обращаются в единицы. Во втором разряде вычитаем из 102 – 12 и получаем 12. В третьем и четвертом разрядах результат вычитания будет равен 0.В пятом разряде опять из 0 нужно вычесть 1, для чего опять производится заем, как и в случае, описанном выше.

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

Дополнительный код двоичного числа

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

Такая форма представления чисел получается, если двоичное число представить следующим образом:

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

Таким образом, двоичное число 10110001 можно представить как

1*(-128)+0*64+1*32+1*16+0*8+0*4+0*2+1*1=-79

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

01001000=0*(-128)+1*64+0*32+0*16+1*8+0*4+0*2+0*1=72

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

77 = 01001101

Обратный код этого числа получим заменой 0 на 1, и 1 на 0.

10110010

Для получения дополнительного кода прибавим к обратному коду 1.

10110010 – обратный код + 1 10110011 – дополнительный код числа 77

Проверим, чему равно двоичное число 10110011 1*(-128)+0*64+1*32+1*16+0*8+0*4+1*2+1*1= -77

Таким способом можно представить числа в диапазоне от 10000000=-128 до 01111111=+127. Если этот диапазон недостаточен, то необходимо использовать шестнадцатиразрядные числа, которые образуются путем объединения двух 8-разрядных слов.

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

17-22= 17+(-22)

В двоичном виде это значит, что нужно сложить 00010001 = 17 и дополнительный код числа 00010110 = 22. Дополнительный код числа 00010110 получим, преобразовав его в обратный код 11101001 и прибавив к обратному коду 1.

00010110 – двоичный код числа 22

11101001 – обратный код + 1 11101010 – дополнительный код

После этого складываем

00010001 17

+ 11101010 -22 = 11111011

Представим 11111011 в десятичном виде

1*(-128)+1*64+1*32+1*16+1*8+0*4+1*2+1*1= -5

Умножение двоичных чисел

Правила двоичного умножения 0*0=0 0*1=0 1*0=0 1*1=1

Умножение двух двоичных чисел осуществляется так же, как и умножение десятичных чисел. Возьмем два числа 9*3=27, в двоичном виде запишем их так

1001 * 11 = 1001 + 1001 = 11011

11011= 1*16+1*8+0*4+1*2+1*1= 27

Двоично-десятичный код BCD (Binary Coded Decimal)

Двоично-десятичный код позволяет представлять в вычислительной машине десятичные цифры 0,…,9 с помощью символов двоичного алфавита.

При двоично-десятичном кодировании каждая десятичная цифра заменяется соответствующим 4-разрядным двоичным числом. Например, число 12 представляется следующим образом. Находим двоичное число для цифры 1 – 0001, находим двоичное число для цифры 2 – 0010, тогда двоично-десятичный код числа 12 будет иметь вид 0001 0010.

Системы кодирования

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

В микроЭВМ наиболее часто используют два кода: американский стандартный код для обмена информацией ASCII (American Standard Code for Information Interchange) и расширенный двоично-кодированный EBCDIC (Extended Binary Coded Decimal Interchange).

Кроме этих кодов используются коды КОИ-7, КОИ-8 и др.