In C programming the implicit typecasting order from Higher to lower:
is the rank of char and short same here, means there is no implicit conversion from char to short or short to char right?
char is - 1 byte, short is - 2 bytes
since the size is different for both these types, how they would be in the same rank?

The image you have provided is wrong. First, it's flat-out incorrect to rank
short intwithchartypes. Per 6.3.1.1 Boolean, characters, and integers, paragraph 1 of the (draft) C11 standard:And C numeric types have a much more complex arrangement than the simple linear "rank" of the image.
Note that the floating point types
float,double, andlong doubleare not ranked with the integer types in 6.3.1.1 quoted above. As noted in the comments on your question, when numeric types are mixed they are subject to what are called usual arithmetic conversions:Note the order there - first, types are converted to an appropriate floating point type, if applicable.
Then "Otherwise, the integer promotions are performed on both operands." That's important - variables of a type smaller than
intare promoted toint(orunsigned int) before calculations are performed. The image you provided does not address that. Integer promotion is specified as:Only after all that are the integer ranks applicable.
And all of that is done on a per-operator basis, by precedence. Some results might be surprising if you weren't aware of that:
In that case, the calculation of
a/bis done using integer arithmetic, not floating-point. Only aftera/bis calculated as an integer value is it converted to afloatand added tox. So ifais less thanb,0.0will be added tox.