Actualmente estoy implementando una ecuación (2^A)[X + Y*(2^B)]
en una de mis aplicaciones.Desbordamiento de la variable de 32 bits
El problema es con el desbordamiento del valor de 32 bits y no puedo usar el tipo de datos de 64 bits.
Supongamos que cuando B = 3
y Y = 805306367
, desborda valor de 32 bits, pero cuando X = -2147483648
, el resultado vuelve al rango de 32 bits.
Así que quiero almacenar el resultado de (Y*2^B)
. ¿Alguien puede sugerir alguna solución para esto .... A y B están teniendo valor de -15
a 15
y X
, Y
pueden tener valores de 2147483647..-2147483648
.
La salida puede ir desde 0...4294967295
.
Si A = B = 15 y X = Y = 2147483647, entonces el resultado es mucho mayor que 4294967295. ¿Existen otras restricciones que vinculen la salida en el rango 0 ... 4294967295? – Andrei
En tu ecuación, ¿'^' xor, o power? ¿Qué representan los corchetes? –