умножение чисел фиксированной разрядности тоже выводит
Произведение чисел из интервала
принадлежит этому же интервалу, а вот сумма - нет.
Я о том, что для хранения результата произведения восьмибитных чисел нужно в общем случае 16 бит. Сложение тоже может не войти.
Повозился с сабжем еще. Литературу пока не искал.
Хотя технически такие числа легче хранить как биты, записывать лучше наверное какими-то буквами, т.к. иначе в арифметике дикость получается. Можно записывать буквами
(-1) и
(+1) по аналогии с проекцией спина 1/2 в квантовой механике.
Умножение реализуется несложно - столбиком. Одно из чисел раскладываем по разрядам, умножение на
какого-то разряда есть сдвиг, умножение на
- сдвиг и изменение знака, последнее достигается инверсией всех разрядов. При сдвиге в освободившиеся разряды помещается не "0", а пустота (
).
Со сложением немного сложнее, эта сложность сказывается и на умножении, т.к. для получения результата нужно сложить поразрядные произведения. Арифметика такая:
(т.е.
переносится в старший разряд, в этом остается
),
аналогично,
,
, с
аналогично. Если в разряде получается
, "занимаем" (!) (причем что мы занимаем? не числа, а возможность их записи.) в младшем разряде: если там
, пишем
(т.е. в младший разряд пишем
), если там
- пишем
.