зависит, если известна эта числовая архитектура:
вы можете воспользоваться механизмом «Два комплимента» архитектуры x86 / x64,
например, если подписанная схема нумерации имеет циклический характер.
f(0 < x < 32768) = x
f(32769 < x < 65535) = x - 65536
Тогда вы можете использовать:
dec(a)
{
loop(65535 [= 2^16-1]) { inc(a) }
}
.
решение Ридделя как
(a-b)
{
loop(b) { dec(a) }
}
В зависимости от схемы со знаком константа сложения может изменяться, то же самое для коротких, длинных и больших целых типов.
Надеюсь, это хорошо :)
Желаем удачи.