簡體   English   中英

什么是數字促銷?

[英]What is numeric promotion?

誰能說出什么是數字促銷?

數值提升是將較小的數值類型轉換為較大的數值類型,以便進行整數和浮點運算。 在數值提升中,byte、char 和 short 值被轉換為 int 值。 如有必要,int 值也會轉換為 long 值。 根據需要將 long 和 float 值轉換為 double 值。

數字促銷規則

  1. 如果兩個值具有不同的數據類型,Java 會自動將其中一個值提升為兩種數據類型中較大的一個。

  2. 如果其中一個值是整數而另一個是浮點值,Java 會自動將整數值提升為浮點值的數據類型。

  3. 較小的數據類型,即 byte、short 和 char,在它們與 Java 二元算術運算符一起使用時首先被提升為 int,即使兩個操作數都不是 int。

  4. 在所有提升發生並且操作數具有相同的數據類型后,結果值將與其提升的操作數具有相同的數據類型

數字提升是將操作數(至少涉及的數字之一)轉換為常見類型。

例如:

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

在這種情況下, i 被提升為 double 以便可以執行計算。 在某些方面,您可以認為這類似於裝箱,但裝箱涉及從結構移動到對象(從堆棧到堆)。 但是,使用類比確實可以讓我們了解將整數值轉換為浮點數以執行計算的事實。

如果你看這里,你會看到以下引用:

數字提升(第 5.6 節)將數字運算符的操作數變為通用類型,以便可以執行操作。

他們引用了這一節,其中給出了各種示例。 經典示例是 int 乘以浮點數。 整數被提升為浮點數,因此相乘的結果是一個浮點數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM