* : Java Glossary

go to home page punctuation words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish 2008-02-24 by Roedy Green ©1996-2009 Canadian Mind Products
index page for letter ⇒ punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all)
*
In Java, multiplication is indicated by the * and *= operators. If you have an assembler background, Java multiplication may astonish you. When the CPU hardware multiplies two 32-bit quantities, usually it gets a 64-bit result. You might thus expect the result in Java of multiplying two 32-bit ints to be a 64-bit long. But it is not. It is truncated without overflow notification, to a 32-bit int.

There are other surprises. You might then expect byte * byte to be a byte, char * char to be a char, short * short to be a short, but they are not. All of them result in an int.

Further byte and short are sign extended to int before the multiply.

long * long gives a long, again truncating without overflow notification. long * int also gives a long.

Floating point, (float and double) works quite differently. float * float gives a float and double * double gives a double. double * float also gives a double. Floating point warns you when the multiply fails by giving NaN (Not a Number) results.


CMP homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.62] The information on this page is for non-military use only.
You are visitor number 11. Military use includes use by defence contractors.
You can get a fresh copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/multiplication.html J:\mindprod\jgloss\multiplication.html