Столкнулся по работе с новым методом умножения двоичных чисел, для которого требуется один из множителей перевести в особый формат -
Canonical Signed Digit.
Идея в том, что для процессора всё равно, складывать или вычитать. А при умножении желательно складывать как можно меньше частичных произведений. Поэтому их число стараются уменьшить заранее, путём более эффективного представления одного из множителей. Вместо умножения на 255 как на сумму (128+64+32+16+8+4+2+1) быстрее будет умножить на 255 как на разницу (256-1).