2009-02-23 34 views
9

Bất kỳ ai có thể cho biết quảng bá bằng số là gì không?Quảng cáo bằng số là gì?

+0

[Chương 5. Chuyển đổi và khuyến mãi] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html) Bạn thực sự có thể đã googled rằng ... – sleske

Trả lời

17

Quảng bá số là chuyển đổi loại số nhỏ hơn thành loại số lớn hơn, do đó hoạt động của số nguyên và dấu phẩy động có thể diễn ra. Trong xúc tiến số, các giá trị byte, char và ngắn được chuyển thành giá trị int. Giá trị int cũng được chuyển đổi thành giá trị dài, nếu cần. Các giá trị dài và nổi được chuyển đổi thành giá trị kép, theo yêu cầu.

0

If you look here, bạn sẽ thấy những trích dẫn sau đây:

xúc tiến Numeric (§5.6) mang toán hạng của một nhà điều hành số để một loại phổ biến để một hoạt động có thể được thực hiện.

Chúng là referencing this section, nơi chúng cung cấp nhiều ví dụ khác nhau. Ví dụ cổ điển là của một lần int một phao. Số nguyên được thăng lên một phao để kết quả nhân là, do đó, một phao.

1

Quảng cáo bằng số là chuyển đổi của toán hạng (ít nhất một trong các số liên quan) thành loại phổ biến.

Ví dụ:

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

Trong trường hợp này, tôi được đề bạt lên gấp đôi nên việc tính toán có thể được thực hiện. Trong một số cách, bạn có thể nghĩ về điều này là tương tự như boxing, nhưng boxing liên quan đến việc di chuyển từ một struct đến một đối tượng (từ stack đến heap). Nhưng, bằng cách sử dụng sự tương tự thì đưa ra một ý tưởng về thực tế giá trị tích phân đang được thực hiện thành một điểm nổi để thực hiện phép tính.

1

Rules Numeric Xúc tiến

  1. Nếu hai giá trị có kiểu dữ liệu khác nhau, Java sẽ tự động thúc đẩy một trong những giá trị lớn hơn của hai loại dữ liệu.

  2. Nếu một trong các giá trị là tích phân và giá trị còn lại là dấu phẩy động, Java sẽ tự động quảng bá giá trị tích phân cho kiểu dữ liệu của giá trị dấu phẩy động.

  3. Loại dữ liệu nhỏ hơn, cụ thể là byte, ngắn và char, được quảng bá lần đầu tiên vào bất kỳ thời điểm nào chúng được sử dụng với toán tử số học nhị phân Java, ngay cả khi không phải toán hạng nào.

  4. Sau khi tất cả các chương trình khuyến mãi đã xảy ra và các toán hạng có kiểu dữ liệu giống nhau, giá trị kết quả sẽ có kiểu dữ liệu tương tự như toán hạng thúc đẩy nó

Các vấn đề liên quan