Теория к ВМСС (987279), страница 2
Текст из файла (страница 2)
31=3
610=60
1100=100
21000=2000
2163
Здесь вес последующего разряда в 10 раз больше веса предыдущего разряда. Например, цифра 6 в приведенном примере имеет значение 60, так как она расположена во втором справа разряде (позиции) числа. Такая взаимосвязь разрядов приводит к необходимости передачи информации между ними. Если при сложении в данном разряде накопилось значение, равное или большее q, то должна происходить передача единицы в соседний старший разряд с уменьшением его на q, т.е. передача единицы переноса. Если при вычитании в данном разряде число единиц оказалось меньше нуля, то должна происходить передача единицы займа соседнего старшего разряда с увеличением его на q для данного разряда. Передача переносов или займов происходит последовательно от разряда к разряду.
Длина числа – количество разрядов (позиций) в записи числа.
Длина разрядной сетки – термин, используемый для определения длинны числа. В разных системах счисления длина разрядной сетки при записи одного и того же числа неодинаковая. Например, 96 10=1408=101203=11000002. Из примера видно, что одно и то же число, записанное в разных системах счисления, имеет разную длину разрядной сетки. Чем меньше основание системы, тем больше длина разрядной сетки. Предположим, что длина разрядной сетки равна какому-то положительному числу n, тогда:
Xmax=qn–1.
Диапазон представления (ДП) чисел в заданной системе счисления – интервал числовой оси, заключенный между максимальными и минимальными числами, представленными длиной разрядной сетки, т. е.
Xmax ДП Xmin. Обычно Xmin=0.
1.3. Выбор оптимальных систем счисления
От того, какая система счисления будет использована в ЭВМ, зависят скорость вычислений, емкость памяти, сложность алгоритмов выполнения арифметических операций. При выборе системы счисления учитывается зависимость длины числа и количества устойчивых состояний функциональных элементов (для изображения цифр) от основания системы счисления. Например, при десятичной системе счисления функциональный элемент должен иметь десять устойчивых состояний, а при двоичной системе счисления – два. Кроме того, система счисления должна обладать простотой выполнения арифметических и логических операций.
Десятичная система счисления, привычная для нас в повседневной жизни, не является наилучшей для использования в ЭВМ. Это объясняется тем, что известные в настоящее время функциональные элементы с десятью устойчивыми состояниями (элементы на основе сегнетокерамики, декатроны и др.) имеют низкую скорость переключения и, таким образом, не могут удовлетворять требованиям, предъявляемым к ЭВМ по быстродействию. Поэтому в большинстве случаев в ЭВМ используют двоичные или двоично-кодированные системы счисления. Широкое распространение этих систем обусловлено тем, что элементы ЭВМ способны находиться лишь в одном из двух устойчивых состояний. Например, полупроводниковый транзистор в режиме переключения может быть в открытом или закрытом состоянии, а, следовательно, иметь на выходе высокое или низкое напряжение. Ферритовый сердечник в устойчивом состоянии может иметь положительную или отрицательную остаточную магнитную индукцию. Такие элементы принято называть двухпозиционными. Если одно из устойчивых положений элемента принять за 0, а другое – за 1, то достаточно просто изображаются разряды двоичного числа.
Арифметические операции над двоичными числами отличаются простотой и легкостью технического выполнения.
Правила двоичной арифметики:
Сложение:
0+0=0 1+0=1
0 +1=1 1+1= 1 0
перенос единицы в старший разряд
Вычитание:
0-0=0 1-1=0
1 -0=1 1 0-1=1
заем единицы в старшем разряде
Умножение:
00=0 10=0
01=0 11=1
Двоичная система счисления является основной для использования в ЭВМ, удобной из-за простоты выполнения арифметических операций над двоичными числами. С точки зрения затрат оборудования на создание ЭВМ эта система уступает только троичной системе счисления.
В двоично-кодированных системах счисления, имеющих основание q, отличное от 2 (q>2), каждая цифра числа представляется в двоичной системе счисления. Наибольшее применение в ЭВМ получили шестнадцатеричная и десятичная двоично-кодированные системы счисления.
2. Выполнение арифметических операций
в различных системах счисления
Рассмотрим выполнение арифметических операций в различных системах счисления. Для этого следует составить таблицы сложения и умножения в соответствующей системе счисления.
2.1. Выполнение арифметических операций
в двоичной системе счисления
Для двоичной системы счисления правила выполнения арифметических операций над двоичными числами остаются такими же, как и в привычной для всех десятичной системе счисления.
Основой выполнения арифметических операций являются следующие таблицы сложения, вычитания и умножения одноразрядных чисел:
Таблица сложения
0 1
0 0 1
1 1 10 единица переноса
в старший разряд
Таблица вычитания
0 0 1
0
0 1 10-1=1
1 1 0 с учетом заема единицы в
старшем разряда
Таблица умножения
0 1
0 0 0
1 0 1
Сложение двух чисел в двоичной системе можно выполнить столбиком, начиная с младших разрядов. При этом в каждом разряде складываются две цифры одноименных разрядов (в соответствии с таблицей сложения) и единицы переноса из соседнего младшего разряда, если он имел место. В результате сложения получим цифру соответствующего разряда суммы и возможную единицу переноса в старший соседний разряд.
Вычитание чисел, как и сложение, также выполняется столбиком (в соответствии с таблицей вычитания). Особым случаем является тот, когда необходимо занимать единицу из соседнего старшего разряда, которая равна двум единицам данного разряда.
Умножение двоичных многоразрядных чисел осуществляется последовательным сложением частичных произведений, каждое из которых (в соответствии с таблицей умножения) равно множимому, сдвинутому на соответствующее число разрядов, если в разряде множителя стоит единица, или нулю, если в разряде множителя стоит .
Деление двоичных чисел производится аналогично делению десятичных чисел, но с учетом специфики операции вычитания двоичных чисел. Положение запятой результата умножения и деления определяется так же, как и для десятичных чисел.
Приведем примеры выполнения действий в двоичной системе счисления:
1. Сложение:
101100 101,1001
+ 1011 + 1,1111
110111 111,1000
2. Вычитание:
_ 110111 _ 111,1000
1011 1,1111
101100 101,1001
3. Умножение:
101
11
1 01
+101
1 111
4. Деление:
1 111 11
- 11 101
1 1
-11
0
2.2. Выполнение арифметических операций
восьмеричной и шестнадцатеричной системах счисления
Восьмеричная и шестнадцатеричная системы счисления относятся к классу двоично-кодированных систем, так как основание этих систем представляют целые степени двойки: 23 – для восьмеричной и 24 - для шестнадцатеричной систем счисления.
Изображение целых чисел в восьмеричной и шестнадцатеричной системах счисления вместе с их двоичным и десятичным эквивалентами представлены в таблице 1 раздела 1.2.
Для систем счисления с основанием q 10 для изображения цифровых символов, используются цифры от 0 до (q - 1), а для q > 10 помимо цифр используются первые шесть букв латинского алфавита.
Большим достоинством восьмеричной и шестнадцатеричной систем счисления является, во-первых, возможность более компактно представить запись двоичного числа, а именно, запись одного и того же двоичного числа в восьмеричной и шестнадцатеричной системах будет соответственно в 3 и 4 раза короче двоичной. Во-вторых, сравнительно просто осуществляется преобразование чисел из двоичной в восьмеричную и шестнадцатеричную системы и наоборот. Действительно, так как для восьмеричного числа каждый разряд представляется группой из трех двоичных разрядов (триад), а для шестнадцатеричного – группой из четырех двоичных разрядов (тетрад), то для такого преобразования достаточно объединить двоичные цифры в группы по 3 и 4 бита соответственно, продвигаясь от раздельной запятой вправо и влево. При этом в случае необходимости добавлять нули в начале и в конце числа и каждую такую группу – триаду или тетраду – заменяют эквивалентной восьмеричной или шестнадцатеричной цифрой.
Указанные достоинства восьмеричных и шестнадцатеричных систем счисления определили использование их при составлении программ для более короткой и удобной записи двоичных чисел, команд и специальных двоичных слов, с которыми оперирует ЭВМ. Особенно оказалось удобным использование шестнадцатеричной системы, когда разрядность чисел и команд выбрана кратной байту, при этом каждый двоичный код байта запишется в виде 2-разрядного шестнадцатеричного числа.
Использование шестнадцатеричной системы счисления в ЭВМ общего назначения, как будет видно из дальнейшего изложения, позволяет расширить допустимый диапазон представления нормализованных чисел.
Представим таблицы сложения и умножения для шестнадцатеричной системы счисления.
Таблица сложения в шестнадцатеричной системе счисления.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 |
2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 0 | 11 |
3 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | C | D | E | F | 10 | 11 | 12 |
4 | 4 | 5 | 6 | 7 | 8 | 9 | А | В | C | D | E | F | 10 | 11 | 12 | 13 |
5 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 |
6 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 |
7 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
8 | 8 | 9 | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
9 | 9 | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
A | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
B | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A |
C | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B |
D | D | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1С |
E | E | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D |
F | F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E |
Таблица умножения в шестнадцатеричной системе счисления.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | – | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
2 | – | – | 4 | 6 | 8 | А | С | E | 10 | 12 | 14 | 16 | 18 | 1A | 1C | 1E |
3 | – | – | – | 9 | C | F | 12 | 15 | 18 | 1B | 1E | 21 | 24 | 27 | 2A | 2D |
4 | – | – | – | – | 10 | 14 | 18 | 1C | 20 | 24 | 28 | 2C | 30 | 34 | 38 | 3C |
5 | – | – | – | – | – | 19 | 1E | 23 | 28 | 2D | 32 | 37 | 3C | 41 | 46 | 4B |
6 | – | – | – | – | – | – | 24 | 2A | 30 | 36 | 3C | 42 | 48 | 4E | 54 | 5A |
7 | – | – | – | – | – | – | – | 31 | 38 | 3F | 46 | 4D | 54 | 5B | 62 | 69 |
8 | – | – | – | – | – | – | – | – | 40 | 48 | 50 | 58 | 60 | 68 | 70 | 78 |
9 | – | – | – | – | – | – | – | – | – | 51 | 5A | 63 | 6C | 75 | 7E | 87 |
A | – | – | – | – | – | – | – | – | – | – | 64 | 6E | 78 | 82 | 8C | 96 |
B | – | – | – | – | – | – | – | – | – | – | – | 79 | 84 | 8F | 9A | A5 |
C | – | – | – | – | – | – | – | – | – | – | – | – | 90 | 9C | A8 | B4 |
D | – | – | – | – | – | – | – | – | – | – | – | – | – | A9 | B6 | C3 |
E | – | – | – | – | – | – | – | – | – | – | – | – | – | – | C4 | D2 |
F | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | E1 |
Очевидно, что таблица сложения симметрична относительно главной диагонали. Это утверждение справедливо и для таблицы умножения, поэтому в нее занесем только те элементы, которые расположены на главной диагонали и выше нее.