【发布时间】:2009-02-23 01:42:44
【问题描述】:
谁能说出什么是数字促销?
【问题讨论】:
-
Chapter 5. Conversions and Promotions 你真的可以用谷歌搜索...
标签: java
谁能说出什么是数字促销?
【问题讨论】:
标签: java
数值提升是将较小的数值类型转换为较大的数值类型,以便可以进行整数和浮点运算。在数值提升中,byte、char 和 short 值被转换为 int 值。如有必要,int 值也会转换为 long 值。 long 和 float 值会根据需要转换为 double 值。
【讨论】:
数值提升规则
如果两个值具有不同的数据类型,Java 会自动将其中一个值提升为两种数据类型中较大的一个。
如果其中一个值是整数而另一个是浮点数,Java 会自动将整数值提升为浮点值的数据类型。
较小的数据类型,即 byte、short 和 char,在与 Java 二进制算术运算符一起使用时首先被提升为 int,即使两个操作数都不是 int。
在发生所有提升并且操作数具有相同的数据类型后,结果值将具有与其提升的操作数相同的数据类型
【讨论】:
数字提升是将操作数(至少涉及的数字之一)转换为通用类型。
例如:
int i = 10;
double d1 = 2.5;
double d2 = d1 * i;
在这种情况下,i 被提升为 double,因此可以执行计算。在某些方面,您可以认为这类似于装箱,但装箱涉及从结构体移动到对象(从堆栈到堆)。但是,使用类比确实可以理解积分值被制成浮点以执行计算的事实。
【讨论】:
If you look here,您将看到以下引用:
数字提升(§5.6)带来 数字运算符的操作数 通用类型,以便操作可以 执行。
他们是referencing this section,他们在其中提供了各种示例。典型的例子是整数乘以浮点数。整数被提升为浮点数,因此相乘的结果是浮点数。
【讨论】: