Baswa,
You're right - it's possible to convert a char to an int, a float or a double because these are all much wider than a char. For example, looking at the width of the following types
byte -2^7 to 2^7 -1
short -2^15 to 2^15 -1
char 0 to 2^16-1
int -2^31 to 2^31-1
A char can hold a wider range of values than a byte and a short so
Java can't automatically convert a char to one of these types.
But an int can hold a much wider range of values than a char so it's fine to convert a char to an int. Same goes for char to a double or a float.
And Greg's right - it's those negative numbers that prevents Java from converting a byte or a short to a char, even though it seems like
you should be able to - again, there's a range of numbers (the negative ones) that the char range doesn't include.
If you really need to convert to a narrower datatype(a double to an int, for example), you have to explicitly cast - make sure that you're not going to lose important information if you do this.
Wow, what a longwinded way of saying, you're right!
Kathy