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

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

Система счисления – совокупность приемов и правил для записи чисел цифровыми знаками или символами.

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

Некоторые системы счисления

Основание Система счисления Знаки
Двоичная 0,1
Троичная 0, 1, 2
Четверичная 0, 1, 2, 3
Пятеричная 0, 1, 2, 3, 4
Восьмеричная 0, 1, 2, 3, 4, 5, 6, 7
Десятичная 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Двенадцатеричная 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B
Шестнадцатеричная 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

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

A n А n–1 A n–2 ...A 1 A 0 , A –1 A –2 ... =

A n B n + A n-1 B n-1 + ... + A 1 B 1 + A 0 B 0 + A –1 B –1 + A –2 B –2 + ...

(знак «,» отделяет целую часть числа от дробной. Таким образом, значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Именно поэтому такие системы счисления называют позиционными).

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

23,45 10 = 2 ⋅ 10 1 + 3 ⋅ 10 0 + 4 ⋅ 10 –1 + 5 ⋅ 10 –2 .

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

692 10 = 6 ⋅ 10 2 + 9 ⋅ 10 1 + 2 ⋅ 10 0 ;

1101 2 = 1 ⋅ 2 3 + 1 ⋅ 2 2 + 0 ⋅ 2 1 + 1 ⋅ 2 0 = 13 10 ;

112 3 = 1 ⋅ 3 2 + 1 ⋅ 3 1 + 2 ⋅ 3 0 = 14 10 ;

341,5 8 = 3 ⋅ 8 2 + 4 ⋅ 8 1 + 1 ⋅ 8 0 + 5 ⋅ 8 –1 = 225,125 10 ;

A1F,4 16 = А ⋅ 16 2 + 1 ⋅ 16 1 + F ⋅ 16 0 + 4 ⋅ 16 –1 = 2591,625 10 .

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



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

Пример перевода целой части: Перевести 25 10 в число двоичной системы.

25 / 2 = 12 с остатком 1,

12 / 2 = 6 с остатком 0,

6 /2 = 3 с остатком 0,

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

Для перевода дробной части (или числа, у которого «0» целых) надо умножить ее на 2. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата целую часть, вновь умножаем на 2 и т.д. Заметим, что конечная десятичная дробь при этом вполне может стать бесконечной (периодической) двоичной.

Пример перевода дробной части: Перевести 0,73 10 в число двоичной системы.

0,73 ⋅ 2 = 1,46 (целая часть 1),

0,46 ⋅ 2 = 0,92 (целая часть 0),

0,92 ⋅ 2 = 1,84 (целая часть 1),

0,84 ⋅ 2 = 1,68 (целая часть 1) и т.д.

Таким образом: 0,73 10 = 0,1011 2 .

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



Рассмотрим сложение двух чисел с основание десять:

При сложении числа 6 и 7 результат можно представить, как выражение 10 + 3, где 10, является полным основанием для десятичной системы счисления. Заменим 10 (основание) на 1 и подставим слева от цифры 3. Получится:

6 10 + 7 10 = 13 10 .

Рассмотрим сложение двух чисел с основание восемь:

При сложении числа 6 и 7 результат можно представить, как выражение 8 + 5, где 8, является полным основанием для восьмеричной системы счисления. Заменим 8 (основание) на 1 и подставим слева от цифры 5. Получится:

6 8 + 7 8 = 15 8 .

Рассмотрим сложение двух больших чисел с основание восемь:

Сложение начинается с младшего разряда. Итак, 4 8 + 6 8 представляем, как 8 (основание) + 2. Заменяем 8 (основание) на 1 и добавляем эту единицу к цифрам старшего разряда. Далее складываем следующие разряды: 5 8 + 3 8 + 1 8 представляем, как 8 + 1, заменяем 8 (основание) на 1 и добавляем ее к старшему разряду. Далее, 2 8 + 7 8 + 1 8 представляем, как 8 (основание) + 2, заменяем 8 (основание) на 1 и подставляем слева от получившегося числа (в позицию старшего разряда). Таким образом, получается:

254 8 + 736 8 = 1212 8 .

276 8 + 231 8 = 527 8 ,

4A77 16 + BF4 16 = 566B 16 ,

1100110 2 + 1100111 2 = 11001101 2 .

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

Рассмотрим умножение «столбиком», на примере двух чисел двоичной системы:

11101 2 · 101 2

Записываем числа друг под другом, в соответствии с разрядами. Затем производим поразрядное перемножение второго множителя на первый и записываем со смещением влево, так же, как при умножении десятичных чисел. Остается сложить «смещенные» числа, учитывая основание чисел, в данном случае двоичное.

преобразуем получившийся результат к основанию 16.

Во втором разряде 29 представляем, как 16 (основание) и 13 (D). Заменим 16 (основание) на 1 и добавим к старшему разряду.

В третьем разряде 96 + 1 = 97. Затем 97 представим, как 6 · 16 (основание) и 1. Добавим 6 старшему разряду.

В четвертом разряде 20 + 6 = 26. Представим 26, как 16 (основание) и 10 (А). Единицу переносим в старший разряд.

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

A
B B
A D

Таким образом, A31 16 · 29 16 = 1A1D9 16 .

527 8 – 276 8 = 231 8 ,

566B 16 – 4A77 16 = BF4 16 ,

11001101 2 – 1100110 2 = 1100111 2 ,

276 8 · 231 8 = 70616 8 ,

4A77 16 · BF4 16 = 37A166C 16 ,

1100110 2 · 1100111 2 = 10100100001010 2 .

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

Представим числа различных систем счисления соответственно друг другу:

Десятичная Шестнадцатеричная Восьмеричная Двоичная
A
B
C
D
E
F

Из таблицы видно, что числа системы с основанием 2, 8 и 16 имеют периодические закономерности. Так, восемь значений восьмеричной системы, то есть (от 0 до 7 или полное основание) соответствуют трем разрядам (триады ) двоичной системы. Таким образом, для описания чисел одного разряда восьмеричной системы требуется ровно три разряда двоичной. Аналогично и с числами шестнадцатеричной системы. Только для их описания требуется ровно четыре разряда (тетрады ) двоичной системы.

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

Например, требуется перевести 11011001 2 в восьмеричную систему.

Разбиваем число на группы по три цифры 011 2 , 011 2 и 001 2 . Подставляем соответствующие цифры восьмеричной системы. Получаем 3 8 , 3 8 и 1 8 или 331 8 .

11011001 2 = 331 8 .

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

Перевести AB5D 16 в двоичную систему счисления.

Поочередно заменяем каждый символ числа AB5D 16 на соответствующее число из двоичной системы. Получим 1010 16 , 1011 16 , 0101 16 и 1101 16 или 1010101101011101 2 .

AB5D 16 = 1010101101011101 2 .

Кроме рассмотренных выше позиционных систем счисления существуют такие, в которых значение знака не зависит от того места, которое он занимает в числе. Такие системы счисления называются непозиционными . Наиболее известным примером непозиционной системы являетсяримская . В этой системе используется 7 знаков (I, V, X, L, С, D, М), которые соответствуют следующим величинам:

Правила записи чисел римскими цифрами : – если большая цифра стоит перед меньшей, то они складываются (принцип сложения), – если меньшая цифра стоит перед большей, то меньшая вычитается из большей (принцип вычитания).

Второе правило применяется для того, чтобы избежать четырёхкратного повторения одной и той же цифры. Так, римские цифры I, Х, С ставятся соответственно перед Х, С, М для обозначения 9, 90, 900 или перед V, L, D для обозначения 4, 40, 400.

Примеры записи чисел римскими цифрами:

IV = 5 - 1 = 4 (вместо IIII),

XIX = 10 + 10 - 1 = 19 (вместо XVIIII),

XL = 50 - 10 =40 (вместо XXXX),

XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33 и т.д.

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

3.1 Основанием системы счисления называется...

Совокупность приемов и правил для записи чисел цифровыми знаками или символами

Число знаков использующиеся в определенной позиционной системе счисления

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

Общий множитель, при переводе чисел из одной системы счисления в другую

3.2 Какая система счисления не нашла широкого применения в компьютерной технике

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

Двоичная

Пятеричная

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

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

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

Сложение. Рассмотрим сложение чисел в двоичной системе счисления. В его основе лежит таблица сложения одноразрядных двоичных чисел:

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

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

Сложение многоразрядных двоичных чисел происходит в соответствии с вышеприведенной таблицей сложения с учетом возможных переносов из младших разрядов в старшие. В качестве примера сложим в столбик двоичные числа 110 2 и 11 2:

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

110 2 = 1 × 2 2 + 1 × 2 1 + 0 × 2 0 = 6 10 ;

11 2 = 1 × 2 1 + 1 × 2 0 = 3 10 ;

6 10 + 3 10 = 9 10 .

Теперь переведем результат двоичного сложения в десятичное число:

1001 2 = 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 9 10 .

Сравним результаты - сложение выполнено правильно.

Вычитание. Рассмотрим вычитание двоичных чисел. В его основе лежит таблица вычитания одноразрядных двоичных чисел. При вычитании из меньшего числа (0) большего (1) производится заем из старшего разряда. В таблице заем обозначен 1 с чертой:

Умножение. В основе умножения лежит таблица умножения одноразрядных двоичных чисел:

Деление. Операция деления выполняется по алгоритму, подобному алгоритму выполнения операции деления в десятичной системе счисления. В качестве примера произведем деление двоичного числа 110 2 на 11 2:

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

Задания

1.22. Провести сложение, вычитание, умножение и деление двоичных чисел 1010 2 и 10 2 и проверить правильность выполнения арифметических действий с помощью электронного калькулятора.

1.23. Сложить восьмеричные числа: 5 8 и 4 8 , 17 8 и 41 8 .

1.24. Провести вычитание шестнадцатеричных чисел: F 16 и А 16 , 41 16 и 17 16 .

1.25. Сложить числа: 17 8 и 17 16 , 41 8 и 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) производится нормализация полученного результата.

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

1. Сложение

Таблицы сложения легко составить, используя правила счета.

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

Пример 1. Сложим числа 15 и 6 в различных системах счисления .

Пример 2. Сложим числа 15, 7 и 3.

Шестнадцатеричная : F 16 +7 16 +3 16

15+7+3 = 25 10 = 11001 2 = 31 8 = 19 16 .

Проверка:

11001 2 = 2 4 + 2 3 + 2 0 = 16+8+1=25,

31 8 = 3 . 8 1 + 1 . 8 0 = 24 + 1 = 25,

19 16 = 1 . 16 1 + 9 . 16 0 = 16+9 = 25.

Пример 3. Сложим числа 141,5 и 59,75 .

Ответ: 141,5 + 59,75 = 201,25 10 = 11001001,01 2 = 311,2 8 = C9,4 16

Проверка. Преобразуем полученные суммы к десятичному виду :

11001001,01 2 = 2 7 + 2 6 + 2 3 + 2 0 + 2 -2 = 201,25

311,2 8 = 3 . 8 2 + 1 . 8 1 + 1 . 8 0 + 2 . 8 -1 = 201,25

C9,4 16 = 12 . 16 1 + 9 . 16 0 + 4 . 16 -1 = 201,25

2. Вычитание

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

уменьшаемое

вычитаемое

0

1

0

1

заем

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

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

Заем единицы из старшего разряда

Вычитание в восьмеричной системе счисления

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

Заем единицы из старшего разряда

Пример 4. Вычтем единицу из чисел 10 2 , 10 8 и 10 16

Пример 5. Вычтем единицу из чисел 100 2 , 100 8 и 100 16 .

Пример 6. Вычтем число 59,75 из числа 201,25.

Ответ: 201,25 10 - 59,75 10 = 141,5 10 = 10001101,1 2 = 215,4 8 = 8D,8 16 .

Проверка. Преобразуем полученные разности к десятичному виду:

10001101,1 2 = 2 7 + 2 3 + 2 2 + 2 0 + 2 -1 = 141,5;

215,4 8 = 2 . 8 2 + 1 . 8 1 + 5 . 8 0 + 4 . 8 -1 = 141,5;

8D,8 16 = 8 . 16 1 + D . 16 0 + 8 . 16 -1 = 141,5.

Двоичная система счисления Сложение одноразрядных двоичных чисел: 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