Что такое числовое продвижение?

Может ли кто-нибудь сказать, что такое числовая реклама?

Ответ 1

Числовое продвижение - это преобразование меньшего числового типа в более крупный числовой тип, так что могут выполняться операции с целыми числами и с плавающей запятой. В числовом продвижении, байт, char, а короткие значения преобразуются в значения int. При необходимости значения int также преобразуются в длинные значения. Значения long и float при необходимости преобразуются в двойные значения.

Ответ 2

Цифровые правила продвижения

  • Если два значения имеют разные типы данных, Java автоматически продвигает одно из значений к большему из двух типов данных.

  • Если одно из значений является интегральным, а другое - с плавающей запятой, Java автоматически продвигает интегральное значение к типу данных значений с плавающей запятой.

  • Меньшие типы данных, а именно байты, короткие и char, сначала передаются в int в любое время, когда они используются с двоичным арифметическим оператором Java, даже если ни один из операндов не является int.

  • После того, как все продвижение произошло, и операнды имеют одинаковый тип данных, результирующее значение будет иметь тот же тип данных, что и его продвинутые операнды

Ответ 3

Числовое продвижение - это преобразование операнда (по крайней мере, одного из числа) в общий тип.

Например:

int i = 10;
double d1 = 2.5;
double d2 = d1 * i;

В этом случае я увеличивается вдвое, поэтому расчет может быть выполнен. В некотором смысле вы можете думать, что это аналогично боксу, но бокс предполагает переход от структуры к объекту (от стека до кучи). Но, используя аналогию, дает представление о том, что интегральное значение превращается в плавающую точку для выполнения расчета.

Ответ 4

Если вы посмотрите здесь, вы увидите следующую цитату:

Числовое продвижение (§5.6) приносит операнды числового оператора к общий тип, чтобы операция могла выполняться.

Они ссылаются на этот раздел, где они приводят множество примеров. Классическим примером является пример int float. Целое число продвигается до поплавка, так что умноженный результат, следовательно, является float.