* : Java Glossary

*
In Java, multiplication is indicated by the * and *= operators. If you have an assembler background, Java multiplication may astonish you. When the CPU (Central Processing Unit) 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.

Learning More



CMP homejump to top You can get the freshest 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
logofeedback Please email your feedback for publication, letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email If you want your message kept confidential, not considered for posting, please explicitly specify that.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.212]
You are visitor number 11.