Числовое продвижение - это преобразование операнда (хотя бы одного из задействованных чисел) в общий тип.
Например:
int i = 10;
double d1 = 2.5;
double d2 = d1 * i;
В этом случае i повышается до двойного, чтобы можно было выполнить вычисление. В некотором смысле вы можете думать, что это аналогично боксу, но бокс включает в себя перемещение от структуры к объекту (из стека в кучу). Но использование аналогии дает представление о том факте, что интегральное значение превращается в число с плавающей запятой для выполнения вычисления.