int делится на unsigned int, вызывая опрокидывание

Я пытаюсь разделить int на unsigned int и получаю неожиданный результат:

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

То же самое работает для '+', '-' и '*', но не для '/'. Что мне здесь не хватает?

PS

Он был протестирован на разных компиляторах, и результат был одинаковым.

5
задан Paul R 11 September 2017 в 08:01
поделиться