Sistemas & Desarrollo
2 meneos
5 clics

Calcular la media de dos enteros sin signo sin desbordamiento [ENG]

Calcular la media de dos números enteros sin signo redondeando a cero suena sencillo: `unsigned average(unsigned a, unsigned b) { return (a + b) / 2; }`. Sin embargo, esto da una respuesta incorrecta frente al desbordamiento de enteros: por ejemplo, si los enteros sin signo tienen 32 bits de ancho, entonces el resultado de `average(0x80000000U, 0x80000000U)` es cero.

| etiquetas: media , números enteros , overflow , desbordamiento

menéame