int dividido por unsigned int causando rollover
Intento dividir int por unsigned int y obtengo un resultado inesperado:
int b;
unsigned int c;
int res;
float res_f;
b = -25;
c = 5;
res = b / c; // res = 858993454
res_f = b / c; // res_f = -5.000000
Lo mismo funciona bien para '+', '-' y '*', pero falla para '/'. ¿Qué es lo que extraño aquí?
PD
e probó en diferentes compiladores y el resultado fue el mism