programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
• Campbell Ritchie
• Liutauras Vilda
• Ron McLeod
• Jeanne Boyarsky
• Paul Clapham
Sheriffs:
• Junilu Lacar
• Tim Cooke
Saloon Keepers:
• Carey Brown
• Stephan van Hulst
• Tim Holloway
• Peter Rooke
• Himai Minh
Bartenders:
• Piet Souris
• Mikalai Zaikin

# Casting hierarchy

Ranch Hand
Posts: 78
• Number of slices to send:
Optional 'thank-you' note:
I'm not sure if my wording is exactly correct, so correct me if it's wrong....
It seems casting is necessary when initializing anything below a selected type on the list:
double
float
long
int
short/char
char/short
byte

Example:
double d = 9;
float f = (float)d; //Cast necessary
Question:
1) Example:

Why is casting necessary between float and long even though float is 32 bits and long is 64 bits? Long is bigger, there should be plenty of room.
2)Example:

I believe that short can hold an negative value, and char can't. So, a char can hold more than a short? and a cast is necessary. Why is a cast necessary both ways if one is bigger than the other?
3)Example:

Why is casting necessary both ways if char is 16 bits, and byte is 8 bits?
4)O'yea, by the way, thanks for you help!!!

Ranch Hand
Posts: 2120
• Number of slices to send:
Optional 'thank-you' note:
In JLS 5 all of this is explained.
Any assignment between char and short/byte is regarded as a narrowing conversion, and thus it needs a cast... Except the cases explained in JLS 5.2

Willie Toma
Ranch Hand
Posts: 78
• Number of slices to send:
Optional 'thank-you' note:
What is JLS? Java L... S...

Greenhorn
Posts: 5
• Number of slices to send:
Optional 'thank-you' note:
JLS,
Java Language Specification.
Get it here:
http://java.sun.com/docs/books/jls/index.html