* : 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



This page is posted
on the web at:

http://mindprod.com/jgloss/multiplication.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\multiplication.html
logo
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.
Blog
IP:[65.110.21.43]
Your face IP:[54.83.233.11]
You are visitor number