* : Java Glossary

*0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ (all)

*
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.
no blog for this page
IP:[65.110.21.43]
Your face IP:[54.145.243.51]
You are visitor number