Going on understanding of these datatypes as primitives
(int) char, and (char) int are intepretations of data. (int) c gives the integer value of that character, and (char) 14 gives you back the character encoded by 14.
I've always understood this as being a "memory parse", such that it just takes the value at that position and then applies a type filter to it.
Given that floating points are stored as some version of scientific notation, what is stored in memory should be garbage as an integer. Looking into this utility http://www.h-schmidt.net/FloatConverter/IEEE754.html it appears that the whole number portion is separated.
However, since this is in the higher portion of memory, how does the int cast know to "reformat"? Does the compiler identify that it was a float and apply special handling, or what's going on?
floatordoubleencoding. Similarly, the conversion betweenfloatanddoubleis not trivial either. - Jonathan Lefflerfloat.truncate, and you can't just write(int) floateither. - Jonathan Lefflerdoubleto/fromvoid *is not defined. - chux - Reinstate Monica