2009-02-23 12 views

Odpowiedz

17

Promocja numeryczna to konwersja mniejszego typu liczbowego na większy typ liczbowy, aby umożliwić wykonywanie operacji na liczbach całkowitych i zmiennoprzecinkowych. W promocji numerycznej bajt, znak i wartości krótkie są konwertowane na wartości int. Wartości int są również konwertowane na długie wartości, jeśli to konieczne. Długie i zmienne wartości są w razie potrzeby konwertowane na podwójne wartości.

0

If you look here, pojawi się następujący cytat:

promocji numerycznej (§5.6) przynosi argumentów operatora numerycznej do wspólnego typu tak, że operacja może być wykonana .

Są to referencing this section, gdzie podają różnorodne przykłady. Klasycznym przykładem jest int razy float. Liczba całkowita jest promowana do wartości zmiennoprzecinkowej, tak że wynik zwielokrotniony jest zatem zmiennoprzecinkowy.

1

Promocja numeryczna jest konwersją argumentu operacji (co najmniej jednej z zaangażowanych liczb) do wspólnego typu.

Na przykład:

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

W tym przypadku, jest promowany do podwojenia więc obliczenia mogą być wykonywane. W pewnym sensie możesz myśleć, że jest to analogiczne do boksowania, ale boksowanie polega na przechodzeniu od struktury do obiektu (od stosu do sterty). Ale użycie tej analogii daje wyobrażenie o tym, że wartość integralna jest przekształcana w zmiennoprzecinkowy, aby wykonać obliczenia.

1

Zasady promocji numeryczna

  1. Jeśli dwie wartości mają różne typy danych, Java automatycznie promować jedną z wartości większej z dwóch typów danych.

  2. Jeśli jedna z wartości jest całkowita, a druga zmiennoprzecinkowa, Java automatycznie będzie promowała wartość całkowitą do typu danych zmiennoprzecinkowych.

  3. Mniejsze typy danych, a mianowicie bajt, short i char, są najpierw promowane do int za każdym razem, gdy są używane z binarnym operatorem arytmetycznym Java, nawet jeśli żaden z operandów nie jest int.

  4. końcu promowanie wystąpiła i argumenty mają ten sam typ danych, uzyskana wartość będzie miała ten sam typ danych w jego promowanych operandów