条件と変換結果
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)
端的に言うと、int型あるいはunsigned int型を使用できる式の中では、char, short, int, intビットフィールドの符号付き・符号無しにかかわらず、それら元の型の全ての値をint型で表現できるならばそれらの値をint型に、それ以外はunsigned int型に変換するということである。演算に先立って、すべてのオペランドの型が揃えられる。 例えば、unsigned char型同士の演算では、unsigned char型のまま演算するのではなく、unsigned char型の値をまずint型に格上げする変換が暗黙的に行なわれる。その後、途中の各演算はint型で行なわれる。これにより、各演算結果がINT_MAXを超えたりINT_MIN未満となったりしないかぎり、計算途中の値がオーバーフローして算術エラーが起こることはない。 同様に、int型での演算結果をunsigned char型に代入する際に格下げする変換が暗黙的に行なわれるが、最終結果がUCHAR_MAXを超えたり0未満となったりしないかぎり、オーバーフローが起こることはない。 #include
※この「条件と変換結果」の解説は、「汎整数拡張」の解説の一部です。
「条件と変換結果」を含む「汎整数拡張」の記事については、「汎整数拡張」の概要を参照ください。
- 条件と変換結果のページへのリンク