Переполнение 32-битной переменной

В настоящее время я реализую уравнение (2 ^ A) [X + Y * (2 ^ B)] в одном из моих приложений.

Проблема связана с переполнением 32-битного значения, и я не могу использовать 64-битный тип данных.

Предположим, что когда B = 3 и Y = 805306367 , оно выходит за пределы 32-битного значения, но когда X = -2147483648 , результат возвращается к 32-битному диапазон.
Итак, я хочу сохранить результат (Y * 2 ^ B) . Может ли кто-нибудь предложить какое-то решение для этого ... A и B имеют значения от -15 до 15 и X , Y могут иметь значения из 2147483647 ..- 2147483648 .
Выход может быть в диапазоне от 0 ... 4294967295 .

6
задан Alex K. 12 June 2011 в 12:48
поделиться