比如byte b = 1; char c = 1;,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?
byte b = 1; char c = 1;
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
まず、整数型のデフォルトは int です。これについては疑いの余地がありません。 次に、許可される型の範囲内で、ここではバイト: -128~127 です。 整数 int 1 がこの範囲内にある場合、コンパイラーは自動的に定数の下位変換を実行します。 定数がこの範囲を超える場合、コンパイラは直接エラーを報告します。
Byte、short、char、boolean はすべて最下層で int として処理されます
間違っています。2 つの整数が int 以下の場合、デフォルトは int になります。
2 つのバイト変数を宣言し、それらを追加して別のバイト変数に割り当てようとすると、コンパイラによってエラーが表示され、強制的な型変換が必要になります。
この記事をチェックしてください: http://www.programgo.com/arti...
自動変換と強制変換に分かれます
まず、整数型のデフォルトは int です。これについては疑いの余地がありません。
次に、許可される型の範囲内で、ここではバイト: -128~127 です。
整数 int 1 がこの範囲内にある場合、コンパイラーは自動的に定数の下位変換を実行します。
定数がこの範囲を超える場合、コンパイラは直接エラーを報告します。
Byte、short、char、boolean はすべて最下層で int として処理されます
間違っています。2 つの整数が int 以下の場合、デフォルトは int になります。
2 つのバイト変数を宣言し、それらを追加して別のバイト変数に割り当てようとすると、コンパイラによってエラーが表示され、強制的な型変換が必要になります。
この記事をチェックしてください: http://www.programgo.com/arti...
自動変換と強制変換に分かれます