编译器设计 - 当多个转换级别消失时,自动类型转换如何发生
Compiler Design - How does does automatic type casting occur when multiple cast levels away
要从 byte
转换为 short
,我假设在后台调用了某种带有签名的方法是否正确:
short byte2Short(byte b);
但是 byte
必须转换为 long
的情况呢? IE。在转换图中,它们没有直接通过箭头连接。
是否有特定的方法将 byte
转换为 long
,例如:
long byte2Long(byte b);
或者它调用一系列方法来转换字节,如下所示:
short byte2Short(byte b);
int short2Int(short s);
long int2Long(int i);
所以基本上我的问题是,如果从字节转换为长整型,转换是否直接如下:
byte -> long
或者是间接的,比如:
byte -> short -> int -> long
转换直接发生,即 byte -> long
。
If the types have the same signedness (both signed or both unsigned), the operand whose type has the lesser conversion rank1 is implicitly converted2 to the other type.
要从 byte
转换为 short
,我假设在后台调用了某种带有签名的方法是否正确:
short byte2Short(byte b);
但是 byte
必须转换为 long
的情况呢? IE。在转换图中,它们没有直接通过箭头连接。
是否有特定的方法将 byte
转换为 long
,例如:
long byte2Long(byte b);
或者它调用一系列方法来转换字节,如下所示:
short byte2Short(byte b);
int short2Int(short s);
long int2Long(int i);
所以基本上我的问题是,如果从字节转换为长整型,转换是否直接如下:
byte -> long
或者是间接的,比如:
byte -> short -> int -> long
转换直接发生,即 byte -> long
。
If the types have the same signedness (both signed or both unsigned), the operand whose type has the lesser conversion rank1 is implicitly converted2 to the other type.