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

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

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

Предположим, нам необходимо сложить числа 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.