Арифметические операции в различных системах. Теория по системам счисления

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

Непозиционными системами называются такие, у которых каждая цифра сохраняет свое значение независимо от места нахождения в числе. Примером может служить римская система счисления, в которой используются такие цифры как I, V, X, L, C, D, M и т.д.

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

Например, можно записать

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

Индекс снизу указывает на основу счисления.

Для перевода положительных чисел, из одной системы счисления в другую известны два правила:

Перевод чисел из системы , в систему;

Перевод чисел из системы , в системус использованием арифметики системы;

Рассмотрим первое правило . Допустим, число в десятичной системе необходимо представить в двоичной системе . Для этого данное число делится на основание системы представленное в системе , т.е. на 2 10 . Остаток от деления будет младшим разрядом двоичного числа. Целая часть результата от деления вновь делится на 2. Операцию деления повторять столько раз, пока частное не будет меньше двух.

Пример: 89 10 перевести в двоичное число, пользуясь арифметикой десятичной системы счисления

89 10 → 1011001 2

Обратный перевод, согласно того же правила, следующий:

1011001 2 перевести в десятичное число, пользуясь арифметикой двоичной системы счисления

Двоичные числа 1000 и 1001 согласно таблице 2.1 соответственно равны 8 и 9. Поэтому 1011001 2 → 89 10

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

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

Арифметические и логические операции

Арифметические операции

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

Существуют простейшие физические элементы, которые имеют только два состояния и которые можно интерпретировать как 0 и 1;

Арифметическая обработка очень проста.

Числа в восьмеричной и шестнадцатеричной системах счисления обычно используется как средство замены длинного и поэтому неудобного представления двоичных чисел.

Операции сложения, вычитания и умножения в двоичной системе имеют вид:

Как уже было продемонстрировано ранее, чтобы обойтись только сумматором, то есть выполнять лишь операции сложения, операция вычитания заменена на сложение. Для этого код отрицательного числа формируется как дополнение до чисел 2, 10, 100 и т.д.

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

По аналогии с 10-сс: 9 + 1 (цифры десять нет в записи чисел), записывается 0 и 1 в старшем разряде, получается 10.

Примеры

1) Сложим в столбик 10110 2 и 111011 2 . Единицы сверху обозначают перенос из предыдущего разряда:

2) Выполнить сложение для следующих двоичных чисел:

3) Сложить числа:10000000100 2 + 111000010 2 и выполнить проверку

10000000100 2 + 111000010 2 = 10111000110 2 .

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

10000000100 2 = 1 × 2 10 + 1 × 2 2 = 1024 + 4 = 1028 10

111000010 2 = 1× 2 8 + 1× 2 7 + 1× 2 6 + 1 × 2 1 = 256 + 128 + 64 + 2 = 450 10

10111000110 2 = 1 × 2 10 + 1 × 2 8 + 1 × 2 7 + 1 × 2 6 + 1 × 2 2 + 1 × 2 1 =

1024 + 256 + 128 + 64 + 4 + 2 =1478 10

1028 10 + 450 10 =1478 10 .

Результаты совпадают, следовательно, вычисления в двоичной системе счисления выполнены верно.

Восьмеричные числа

Таблица сложения восьмеричных чисел

+

При вычислениях в восьмеричной системе нужно помнить, что максимальная цифра – это 7. Перенос при сложении возникает тогда, когда сумма в очередном разряде получается больше 7. Заем из старшего разряда равен 10 8 = 8, а все «промежуточные» разряды заполняются цифрой 7 – старшей цифрой системы счисления.

Пример

1) В примере запись 1⋅8 + 2 означает, что получилась сумма, большая 7, которая не помещается в один разряд. Единица идет в перенос, а двойка остается в этом разряде.

2) Выполнить сложение 223,2 8 + 427,54 8 и осуществить проверку полученного результата.

223,2 8 + 427,54 8 = 652,74 8 .

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

223,2 8 = 2 × 8 2 + 2 × 8 1 + 3 × 8 0 + 2 × 8 -1 = 128 + 16 + 3 + 0,25 =

427,54 8 = 4 × 8 2 + 2 × 8 1 + 7 × 8 0 + 5 × 8 -1 + 4 × 8 -2 =

256 + 16 + 7 + 0,625 + 0,0625= 279,6875 10

652,74 8 = 6 × 8 2 + 5 × 8 1 + 2 × 8 0 + 7 × 8 -1 + 4 × 8 -2 =

384 + 40 + 2 + 0,875 + 0,0625 = 426,9375 10

147,25 10 + 279,6875 10 =426,9375 10

Результаты совпадают, следовательно, вычисления в восьмеричной системе счисления выполнены верно.

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

Таблица сложения шестнадцатеричных чисел

+ A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A A B C D E F
B B C D E F 1A
C C D E F 1A 1B
D D E F 1A 1B 1C
E E F 1A 1B 1C 1D
F F 1A 1B 1C 1D 1E

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

Примеры

2) Выполнить сложение 3B3,6 16 + 38B,4 16 и осуществить проверку

3B3,6 16 + 38B,4 16 = 73E,A 16 .

Выполним проверку:

3B3,6 16 = 3 × 16 2 + 11 × 16 1 + 3 × 16 0 + 6 × 16 -1 = 768 + 176 +

3 + 0,375 = 947,375 10

38B,4 16 = 3 × 16 2 + 8 × 16 1 + 11 × 16 0 + 4 × 16 -1 = 768 + 128 +

11 + 0,25 = 907,25 10

73E,A 16 = 7 × 8 2 + 3 × 8 1 + 14 × 8 0 + 10 × 8 -1 = = 1792 + 48 + 14 + 0,625 = 1854,625 10

947,375 10 + 907,25 10 = 1854,625 10 .

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

Вычитание

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

Вычитание выполняется почти так же, как и в десятичной системе. Вот основные правила:

0 – 0 = 0, 1 – 0 = 1, 1 – 1 = 0, 10 2 – 1 = 1.

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

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

Чтобы понять принцип, временно вернемся к десятичной системе. Вычтем в столбик из числа 21 число 9:

Поскольку из 1 нельзя вычесть 9, нужно взять заем из предыдущего разряда, в котором стоит 2. В результате к младшему разряду добавляется 10, а в следующем 2 уменьшается до 1. Теперь можно выполнить вычитание: 1 + 10 – 9 = 2. В старшем разряде вычитаем из оставшейся единицы ноль:

Более сложный случай – заем из дальнего (не ближайшего) разряда. Вычтем 9 из 2001. В этом случае занять из ближайшего разряда не удается (там 0), поэтому берем заем из того разряда, где стоит цифра 2. Все промежуточные разряды в результате заполняются цифрой 9, это старшая цифра десятичной системы счисления:

В двоичной системе счисления, когда берется заем, в «рабочий» разряд добавляется уже не 10, а 102 = 2 (основание системы счисления), а все «промежуточные» разряды (между «рабочим» и тем, откуда берется заем) заполняются не девятками, а единицами (старшей цифрой системы счисления).

Примеры

Если требуется вычесть большее число из меньшего, вычитают меньшее из большего и ставят у результата знак «минус»:

3) 4)

Восьмеричные числа

1)

При вычитании «– 1» означает, что из этого разряда раньше был заем (его значение уменьшилось на 1), а «+ 8» – заем из следующего разряда.

2) Вычитание

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

При вычитании заем из старшего разряда равен 10 16 = 16, а все «промежуточные» разряды заполняются цифрой F – старшей цифрой системы счисления.

Например,

1)

2)

Умножение

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

х

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

Например,

1) 2)

Восьмеричные числа

Восьмеричная таблица умножения

´

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

Пример

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

Таблица умножения

´ A B C D E F
A B C D E F
A C E 1A 1C 1E
C F 1B 1E 2A 2D
C 1C 2C 3C
A F 1E 2D 3C 4B
C 1E 2A 3C 4E 5A
E 1C 2A 3F 4D 5B
1B 2D 3F 5A 6C 7E
A A 1E 3C 5A 6E 8C
B B 2C 4D 6E 8F 9A A5
C C 3C 6C 9C A8 B4
D D 1A 4E 5B 8F 9C A9 B6 C3
E E 1C 2A 7E 8C 9A A8 B6 C4 D2
F F 1E 2D 3C 4B 5A A5 B4 C3 D2 E1

Пример

Деление отдельно в десятичную систему, так как для чисел от 0 до 7 их восьмеричная запись совпадает с десятичной);

3) Складываем

Решение (через шестнадцатеричную систему):

1) (сначала перевели в двоичную систему, потом двоичную запись числа разбили на тетрады справа налево , каждую тетраду перевели в шестнадцатеричную систему; при этом тетрады можно переводить из двоичной системы в десятичную, а затем заменить все числа, большие 9, на буквы – A, B, C, D, E, F);

2) , никуда переводить не нужно;

3) складываем

4) переводим в шестнадцатеричную систему все ответы:

121 8 = 001 010 001 2 = 0101 0001 2 = 51 16 (перевели в двоичную систему по триадам, разбили на тетрады справа налево, каждую тетраду перевели отдельно в десятичную систему, все числа, большие 9, заменили на буквы – A, B, C, D, E, F).

171 2 = 001 111 001 2 = 0111 1001 2 = 79 16 ,

69 16 , переводить не нужно

1000001 2 = 0100 0001 2 = 41 16 .

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

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

При сложении двух единиц происходит переполнение разряда и производится перенос единицы в старший разряд, при вычитании 0–1 производится заем из старшего разряда, в таблице «Вычитание» этот заем обозначен 1 с чертой над цифрой (Таблица 3).

Таблица 3

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

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

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

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

Целые числа хранятся в памяти в формате с фиксированной запятой. При таком формате представления чисел для хранения целых неотрицательных чисел отводится регистр памяти, состоящий из восьми ячеек памяти (8 бит). Каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда и вне разрядной сетки. Например, число 110011012 будет храниться в регистре памяти следующим образом:

Таблица 4

Максимальное значение целого неотрицательного числа, которое может храниться в регистре в формате с фиксированной запятой, можно определить из формулы: 2n – 1, где n – число разрядов числа. Максимальное число при этом будет равно 28 – 1 = 25510 = 111111112и минимальное 010 = 000000002. Таким образом, диапазон изменения целых неотрицательных чисел будет находиться в пределах от 0 до 25510.

В отличие от десятичной системы в двоичной системе счисления при компьютерном представлении двоичного числа отсутствуют символы, обозначающие знак числа: положительный (+) или отрицательный (-), поэтому для представления целых чисел со знаком в двоичной системе используются два формата представления числа: формат значения числа со знаком и формат дополнительного кода. В первом случае для хранения целых чисел со знаком отводится два регистра памяти (16 бит), причем старший разряд (крайний слева) используется под знак числа: если число положительное, то в знаковый разряд записывается 0, если число отрицательное, то – 1. Например, число 53610 = 00000010000110002 будет представлено в регистрах памяти в следующем виде:

Таблица 5

а отрицательное число -53610 = 10000010000110002 в виде:

Таблица 6

Максимальное положительное число или минимальное отрицательное в формате значения числа со знаком (с учетом представления одного разряда под знак) равно 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 1111111111111112 и диапазон чисел будет находиться в пределах от -3276710 до 32767.

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

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

1) модуль числа записать прямым кодом в n (n = 16) двоичных разрядах;

2) получить обратный код числа (инвертировать все разряды числа, т. е. все единицы заменить на нули, а нули – на единицы);

3) к полученному обратному коду прибавить единицу к младшему разряду.

Например, для числа -53610 в таком формате модуль будет равен 00000010000110002, обратный код – 1111110111100111, а дополнительный код – 1111110111101000.

Необходимо помнить, что дополнительный код положительного числа – само число.

Для хранения целых чисел со знаком помимо 16-разрядного компьютерного представления, когда используются два регистра памяти (такой формат числа называется также форматом коротких целых чисел со знаком), применяются форматы средних и длинных целых чисел со знаком. Для представления чисел в формате средних чисел используется четыре регистра (4 х 8 = 32 бит), а для представления чисел в формате длинных чисел – восемь регистров (8 х 8 = 64 бита). Диапазоны значений для формата средних и длинных чисел будут соответственно равны: -(231 – 1) … + 231 – 1 и -(263-1) … + 263 – 1.

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

Вещественные числа (конечные и бесконечные десятичные дроби) обрабатываются и хранятся в компьютере в формате с плавающей запятой. При таком формате представления числа положение запятой в записи может изменяться. Любое вещественное число К в формате с плавающей запятой может быть представлено в виде:

где А – мантисса числа; h – основание системы счисления; p – порядок числа.

Выражение (2.7) для десятичной системы счисления примет вид:

для двоичной -

для восьмеричной -

для шестнадцатеричной -

Такая форма представления числа также называется нормальной . С изменением порядка запятая в числе смещается, т. е. как бы плавает влево или вправо. Поэтому нормальную форму представления чисел называют формой с плавающей запятой . Десятичное число 15,5, например, в формате с плавающей запятой может быть представлено в виде: 0,155 · 102; 1,55 · 101; 15,5 · 100; 155,0 · 10-1; 1550,0 · 10-2 и т. д. Эта форма записи десятичного числа 15,5 с плавающей запятой не используется при написании компьютерных программ и вводе их в компьютер (устройства ввода компьютеров воспринимают только линейную запись данных). Исходя из этого выражение (2.7) для представления десятичных чисел и ввода их в компьютер преобразовывают к виду

где Р – порядок числа,

т. е. вместо основания системы счисления 10 пишут букву Е, вместо запятой – точку, и знак умножения не ставится. Таким образом, число 15,5 в формате с плавающей запятой и линейной записи (компьютерное представление) будет записано в виде: 0.155Е2; 1.55Е1; 15.5Е0; 155.0Е-1; 1550.0Е-2 и т.д.

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

где |А| - абсолютное значение мантиссы числа.

Условие (2.9) означает, что мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля, или, другими словами, если после запятой в мантиссе стоит не нуль, то число называется нормализованным. Так, число 15,5 в нормализованном виде (нормализованная мантисса) в форме с плавающей запятой будет выглядеть следующим образом: 0,155 · 102, т. е. нормализованная мантисса будет A = 0,155 и порядок Р = 2, или в компьютерном представлении числа 0.155Е2.

Числа в форме с плавающей запятой имеют фиксированный формат и занимают в памяти компьютера четыре (32 бит) или восемь байт (64 бит). Если число занимает в памяти компьютера 32 разряда, то это число обычной точности, если 64 разряда, то это число двойной точности. При записи числа с плавающей запятой выделяются разряды для хранения знака мантиссы, знака порядка, мантиссы и порядка. Количество разрядов, которое отводится под порядок числа, определяет диапазон изменения чисел, а количество разрядов, отведенных для хранения мантиссы, – точность, с которой задается число.

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

1) производится выравнивание порядков чисел, над которыми совершаются арифметические операции (порядок меньшего по модулю числа увеличивается до величины порядка большего по модулю числа, мантисса при этом уменьшается в такое же количество раз);

2) выполняются арифметические операции над мантиссами чисел;

3) производится нормализация полученного результата.

Двоичная система счисления Сложение одноразрядных двоичных чисел: 0+0=0 1+0=1 0+1=1 1 + 1 = 10 Пример 1101 + 101 -----10010

Двоичная система счисления Вычитание одноразрядных двоичных чисел: 0 -0=0 1 -0=1 0 - 1 = (заем из старшего разряда) 1 1 -1=0 Пример: 1110 - 101 ---1001

Двоичная система счисления Умножение одноразрядных двоичных чисел: 0*0=0 1*0=0 0*1=0 1*1=1 Пример: 1110 * 10 -----+ 0000 1110 -------11100

Двоичная система счисления Деление выполняется так же как в десятичной системе счисления: 1110 10 11 10 10 10 111

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

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Сложение Х 1=0, 1001*2101 Х 2=0, 1100*2100 1) р=101 -100=001 Х 2=0, 0110*2101 2)0, 1001 +0, 0110 0, 1111 3) Х 1+ Х 2=0, 1111*2101

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Вычитание Х 1=0, 1001*2101 Х 2=0, 1100*2100 1) р=101 -100=001 Х 2=0, 0110*2101 2) 0, 1001 -0, 0110 0, 0011 3) Х 1 - Х 2=0, 0011*2101=0, 11*211

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Умножение Х 1=q 1*2 p 1 Х 2=q 2*2 p 2 Х 1=10=0, 10*210 Х 2=10=0, 10*210 0, 10 *0, 10 0 00 01 0 000____ 0, 0100 X 1*X 2=q 1*q 2*2(p 1+p 2) р1+р2=10+10=100 X 1*X 2=0, 0100*2100

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Деление Х 1=q 1*2 p 1 Х 2=q 2*2 p 2 Х 1=0, 110=110*2 -11 Х 2=0, 10=10*2 -10 10 10 11 10 10 0 р1 -р2=-11 -(-10)=-01 =11*2 -01

В ПК используются следующие разрядные сетки для представления чисел: 1 байт (8 разрядов) – полуслово 2 байта (16 разрядов) – слово 4 байта (32 разряда) – двоичное слово 8 байт (64 разряда) – расширенное слово -310 = -112 в восьмиразрядной сетке будет иметь вид: 1000011 Для кодирования знака числа отводится специальный разряд, называемый знаковым. Под него отводится старший разрядной сетки, «+» кодируется 0, «-» кодируется 1.

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

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

Виды машинных кодов Обратный код отрицательного числа получается с помощью замены значений всех цифр числа на противоположные за исключением знакового разряда. 310 = 112 в прямом, дополнительном и обратном коде будет иметь вид – 0000011 -310 = -112 прямом коде будет иметь вид: 1000011 -310 = -112 обратном коде будет иметь вид: 11111100

Виды машинных кодов Дополнительный код отрицательного числа получается в результате увеличения его обратного кода на 1. -310 = -112 обратном коде будет иметь вид: 11111100 -310 = -112 дополнительном коде будет иметь вид: 11111101

Пример 1. Выполнение операции в обратном коде Х 1 -Х 2=17 -5= 17+(-5)=12 [Х 1] пр=0001 [Х 2] пр=10000101 [Х 1] обр=0001 [Х 2] обр=11111010 При выполнении операций в обратном коде единица, ушедшая за 8 разряд, прибавляется к младшему разряду числа.

Пример 2. Х 1 -Х 2=5 -17= 5+(-17)=-12 [Х 1] пр=00000101 [Х 2] пр=10010001 00000101 +1110 11110011 обр. 10001100= -12 [Х 1] обр=00000101 [Х 2] обр=1110 Ответ всегда записывается в прямом коде. Если в результате получилось отрицательное число, то его необходимо перевести в прямой код.

Пример 3. Выполнение операции в дополнительном коде Х 1 -Х 2=17 -5= 17+(-5)=12 [Х 1] пр=0001 [Х 2] пр=10000101 [Х 1] обр=0001 [Х 2] обр=11111010 [Х 1] доп=0001 [Х 2] доп=11111011 При выполнении операций в дополнительном коде Единица, ушедшая за 8 разряд ВЫБРАСЫВАЕТСЯ.

Пример 4. Х 1 -Х 2=5 -17= 5+(-17)=-12 [Х 1] пр=00000101 [Х 2] пр=10010001 [Х 1] обр=00000101 [Х 2] обр= 1110 [Х 1] доп=00000101 [Х 2] доп= 11101111 Получили отрицательное число в доп. коде. Для перевода его в прямой код необходимо: 1. Проинвертировать все разряды числа, за исключением знакового; 2. Еще раз прибавить 1 к младшему разряду.

Модифицированный дополнительный машинный коды Модифицированный дополнительный код получается из дополнительного простым дублированием знакового разряда. "00" соответствует знаку "+", "11" - знаку "-". Любая другая комбинация ("01" или "10"), получившаяся в знаковых разрядах служит признаком переполнения разрядной сетки и получившийся результат – неверный. знак 5 4 3 2 1 0

Пример Переведем X и Y в модифицированный дополнительный код: Выполним сложение: В данном примере запятой отделены знаковые разряды!! Переполнения нет (в знаковых разрядах "00" – в результате получено положительное число), поэтому полученный результат - верный (X+Y=1111=41 -26= 15).

Пример 2 Обычная запись числа Х= -41= - 101001 У= 26= + 011010 Модифицированный обратный код 11 010110 00 011010 Модифицированный дополнительный код 11 010111 00 011010 Х+У= -41+26= -15 11 010111 +00 011010 11 110001 доп. модиф. код Переполнения нет (в знаковых разрядах "11" – в результате получено отрицательное число), поэтому полученный результат – нужно переводить в прямой код. 11 110001 доп. модиф. код 11 001110 обратный. модиф. код + 1 11 001111 , что соответствует числу - 1510

| Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год (ФГОС) | Арифметические операции в позиционных системах счисления

Урок 15
§12. Арифметические операции в позиционных системах счисления

Арифметические операции в позиционных системах счисления

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

В начальной школе для обучения детей счёту используют таблицы сложения и умножения. Подобные таблицы можно составить для любой позиционной системы счисления.

12.1. Сложение чисел в системе счисления с основанием q

Рассмотрите примеры таблиц сложения в троичной (табл. 3.2), восьмеричной (табл. 3.4) и шестнадцатеричной (табл. 3.3) системах счисления.

Таблица 3.2

Сложение в троичной системе счисления

Таблица 3.3

Сложение в шестнадцатеричной системе счисления

Таблица 3.4

Сложение в восьмеричной системе счисления

q получить сумму S двух чисел А и Б , надо просуммировать образующие их цифры по разрядам i справа налево:

Если a i + b i < q, то s i = a i + b i , старший (i + 1)-й разряд не изменяется;
если a i + b i ≥ q, то s i = а i + b i - q, старший (i + 1)-й разряд увеличивается на 1.

Примеры:

12.2. Вычитание чисел в системе счисления с основанием q

Чтобы в системе счисления с основанием q получить разность R двух чисел А и В , надо вычислить разности образующих их цифр по разрядам i справа налево:

Если a i ≥ b i , то r i = a i - b i , старший (i + 1)-й разряд не изменяется;
если a i < b i , то r i = a i - b i + g, старший (i + 1)-й разряд уменьшается на 1 (выполняется заём в старшем разряде).