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


Сложение шестнадцатеричных чисел
Сначала немного поговорим о правилах. Самое первое — всегда стоит помнить о том, что шестнадцатеричная система счисления позиционная. Об этом я писал в самом начале, но не грех и повторить. Просто из этого правила следует очень важный момент, складывая числа, нужно делать это только с цифрами, находящимися в одинаковых разрядах.
Сначала мы с вами вспомним как складывать числа в столбик в привычной нам десятичной системе счисления и применим эти знания на шестнадцатеричные числа.
Предположим, нам необходимо сложить числа 234 и 49. Для этого мы запишем эти числа одно под другим так, чтобы разряды в них совпадали — единицы под единицами, десятки под десятками и так далее. И складывать будем цифры из одинаковых разрядов, начиная с единиц и идя влево.

Помня о том, что мы пока складываем десятичные числа (10 является основанием системы счисления), складываем разряды по очереди справа налево. 4 + 9 = 13. Наш результат — 13, он больше 10 — нашего основания. В случае, когда результат больше или равен основанию, это самое основание нужно вычесть из результата. В нашем примере от 13 необходимо отнять 10, а новый результат записать под цифрами 4 и 9, отнятую же здесь десятку, перенести в левый разряд как единицу старшего разряда (десять единиц равно одному десятку). В разряде с десятков мы складываем 3 + 4 и добавляем к ним перенесенный 1 десяток. Результат — 8. Он меньше нашего основания, значит под десятками просто записываем 8. Далее складываем сотни. Но двойку не с чем складывать, значит просто переносим ее в результат. Итак: 234 + 49 = 283.
Ровно те же правила сложения чисел действуют в любой позиционной системе счисления. Единственное отличие заключается в том, что результаты сложения цифр в разрядах придется сравнивать с другими основаниями систем счисления.
Переходим к шестнадцатеричным числам. Вспомним, что основание здесь равно 16. И неприятной особенностью являются цифры обозначенные буквами латинского алфавита. Чтобы нам было проще складывать, вспомним, чему они равны:
a = 10, b = 11, c = 12, d = 13, e = 14, f = 15.
Переходим, собственно, к примеру на сложение. Давайте сложим 0xA15 и 0xBC.
Сначала складываем единицы — 5 + С. Вспоминаем, что с = 12, получаем 5 + 12 = 17. Результат больше основания системы счисления, который равен 16. Значит вычитаем 16 из 17 — равно 1, записываем этот новый результат под правым разрядом, а в левый старший разряд переносим единичку (16 единиц равно одному десятку в шестнадцатеричной системе). Там же складываем 1 + B. Добавляем к этой сумме 1 перенесенный разряд и вспоминаем, что B = 11, получаем: 1 + 1 + 11 = 13. Во-первых: этот результат меньше 16, значит его можно просто записать под складываемыми цифрами, а во-вторых: Число 13 в шестнадцатеричной арифметике записывается буквой D. В разряд сотен при этом ничего не переносится, а цифра A из верхнего слагаемого просто переносится в результат. Несложно заметить, что 0xA15 + 0xBC = 0xAD1.
Вычитание шестнадцатеричных чисел
Начнем мы снова с привычной нам десятичной системы счисления. Давайте решим пример: 123-85.

Вычитание снова происходит поразрядно, но переносы делаются на сей раз слева направо. Поясню. В нашем примере необходимо из 3 отнять 5. Этого сделать нельзя, поэтому мы занимаем один десяток из левого разряда. Теперь 5 нужно отнять от 13. В результате мы получим 8, запишем этот результат под разрядом единиц. От десятков в уменьшаемом (число 123) мы один десяток заняли в разряд единиц. Теперь здесь только 1 десяток. Нам нужно из одного вычесть 8. Для этого снова приходится занять единицу из левого разряда (теперь уже сотен). Значит нужно из 11 вычесть 8. В результате получаем – 3 и записываем его под разрядом десятков. А единственную сотню мы заняли для вычитания десятков. Пример решён: 123-85 = 38.
Перейдем к вычитанию шестнадцатеричных чисел. Все делается аналогично, надо только помнить, что в случае необходимости из левых разрядов мы будем занимать не 10, а 16. Ну и снова вспомним, чему равны цифры старше девятки:a = 10, b = 11, c = 12, d = 13, e = 14, f = 15.
Давайте решим пример BC4-AF.

Из 4 нельзя вычесть F, значит из левого разряда мы займем 16. Теперь F надо вычитать из 20. В результате — 5, записываем его под разрядом единиц. Цифра C уменьшилась на 1, теперь это B. Значит надо A вычесть из B. Нетрудно догадаться, что в результате будет 1. Записываем этот результат в разряде десятков. Из сотен в этот раз мы ничего не занимали и в вычитаемом только 2 цифры — сотен нет, то есть сносим B из уменьшаемого в результат.
УМНОЖЕНИЕ
Выполняя умножение многозначных чисел в различных позиционных системах счисления, можно использовать обычный алгоритм перемножения чисел в столбик, но при этом результаты перемножения и сложения однозначных чисел необходимо заимствовать из соответствующих рассматриваемой системе таблиц умножения и сложения.
Произведем умножение двух чисел A214 и DF в шестнадцатеричной системе счисления.
1. Начинаем справа: умножаем F (15) на 4 = 60.
2. Делим 60 на основание системы счисления (16) и переносим целую часть в следующий разряд (3) , а в ответ пишем остаток (12 = С).
3. Умножаем F(15) на следующую цифру (1) = 15 и прибавляем 3 из предыдущего пункта, получаем 18.
4. Делим 18 на основание системы счисления (16) и переносим целую часть в следующий разряд (1), а в ответ пишем остаток (2).
5. Умножаем F(15) на следующую цифру (2) = 30 и прибавляем 1 из предыдущего пункта, получаем 31.
6. Делим 31 на основание системы счисления (16) и переносим целую часть в следующий разряд (1), а в ответ пишем остаток (15=F).
7. Умножаем F(15) на следующую цифру (A=10) = 150 и прибавляем 1 из следующего пункта, получаем 151.
8. Делим 151 на основание системы счисления (16) и переносим целую часть в следующий разряд (9), а в ответ пишем остаток (7).
9. В следующий разряд пишем целую часть от предыдущего деления (9).
10. Получаем 97F2C.
11. Проводим аналогичные операции с умножением D на А214.
12. Складываем получившиеся произведения и записываем ответ 8D2F6C.

ДЕЛЕНИЕ
В любой позиционной системе счисления деление производится по тем же правилам, как и деление углом в десятичной системе.
Разделим число 8D2F6C на DF в шестнадцатеричной системе счисления.
1. Сравниваем самый больший разряд и делитель, если дели-тель больше данного разряда, то рассматриваем этот разряд и следую-щий как число. Повторяем операцию до того момента, как полученное число не сравняется либо превысит значение делителя. (8<DF, 8D<DF, 8D2>DF).
2. Когда нашли искомый разряд, то подбираем такое число (A), при котором произведение делителя и этого числа (8B6) будет максимально близким по значению (но не больше) к числу, образованному разрядами (пункт 1). Записываем это число в ответ первым.
3. Отнимаем произведение (пункт 2) от разрядов (пункт 1) (8D2-8B6).
4. Остаток пишем после черты (1C).
5. Сносим следующий разряд к остатку и проверяем больше ли получившееся число, чем делитель. Если нет, то сносим ещё один разряд до тех пор, пока это число не станет больше чем делитель и не забываем записывать нули в ответ.
6. Проделываем все вышеперечисленное до тех пор, пока оставшиеся цифры не закончатся, или в остатке получится число меньше делителя.
Записываем ответ (A214).

ЗАДАЧИ:
AB5+D7F
A214+DF
FE-7F
AC2-63A
ABC*10A
AD5*A3
83E/A
773AD4/ BD

Приложенные файлы

  • docx 2268301
    Размер файла: 58 kB Загрузок: 0

Добавить комментарий