luckysundog В дополнительном коде, используемом всеми современными аппаратными платформами для представления отрицательных чисел, операции сложения и вычитания выполняются абсолютно одинаково независимо от того, имеют числа знак или не имеют. Вот умножение и деление различаются (по этой причине в системе команд ИА-32, например, есть только "общие" команды сложения и вычитания ADD и SUB, но отдельно знаковые и беззнаковые команды умножения и деления IMUL/MUL и IDIV/DIV).
помоему это в младших классах школы проходят, когда учат числа делить... элементарная арифметика однако
это всё понятно про сложение, вычитание и умножение. у меня сомнения были насчет использования &, теперь уже разобрался. Просто в общем случае(для любого модуля) приходится использовать %, но это не совсем сложение по модулю, а просто остаток от деления.
как раз остаток от деления - это и есть сложение по модулю. А примеры в первых постах - это всего лишь упрощенный способ сложения по модулю 8. для других значений - он не проканает.
проканает для всех степеней двойки вариант для степеней десятки: function SumMod10(a,b:integer):integer; begin result:=StrToInt(Copy(IntToStr(a+b),1,1)); end;
в 32 разряда влазит 10 8ричных цифр (3*10) + 2 бита лишних (перед - заполнять знаком), после сложения отформатировать как нравится (а как нравится?)