В настоящее время я реализую уравнение (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
.