数式に異なる数値タイプのオペランド(定数と変数)が含まれている場合、次の規則に従って、オペランドはより大きなタイプにプロモートされます。
- オペランドがタイプ、、、、、の場合、それらはタイプに変換さ
byteれますsbytecharshortushortint - オペランドの1つがである場合
int、すべてのオペランドはに変換されますint - 式にタイプ
uintとのオペランドも含まれている場合int、すべてのオペランドは次のように変換されます。long - オペランドの1つが、の場合
long、すべてのオペランドはに変換されますlong - 式にタイプ
ulongとのオペランドが含まれている場合、オペランドは次のlongように変換されます。float - オペランドの1つがである場合
float、すべてのオペランドはに変換されますfloat - オペランドの1つが、の場合
double、すべてのオペランドはに変換されますdouble
数値式にさまざまな型のオペランドが含まれているとすると、すべてのオペランドが最初に単一の数値型に変換され、次にランタイムが結果を計算しようとしますか?たとえば、変数b1とb2がbyte型であり、i1が型である場合、計算の前にintwillb1とb2getがintに変換され(b1+b2)ます。
int i2=(b1+b2)+i1