- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:汎整数拡張の通常の算術型変換)
汎整数拡張の通常の算術型変換とは?
このQ&Aのポイント
- 汎整数拡張の通常の算術型変換について説明します。
- unsigned型の上位性とは何なのか、具体的な例を挙げて説明します。
- unsigned型の上位性がどのように算術型変換に影響するのかについて説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず、「汎整数拡張」の「通常の算術型変換」というのは変です。 汎整数拡張または整数拡張は、両方のオペランドが整数型の場合に、通常の算術型変換の一過程として行われます。また、シフト演算子など、通常の算術型変換が行われない場合でも汎整数拡張(または整数拡張)が行われます。 次に、 > 何ゆえにunsigned型の上位性をしているのでしょうか。宜しく願います。 については、想像の域を出ませんが、整数変換順位が同じであれば符号無し整数型のほうが大きな絶対値を扱えるからではないでしょうか?
補足
if(-1<1u)を例にとりますと、unsigned int型int型を16ビットで考えますと、1は最後のビットが1で後は0になり、-1は全てのビットが1になります。-1をunsigned int型に変換すれば(-1<1u)は偽になるわけですが、そこの所が理屈としてはわかるのですが、c言語という体系で何ゆえこのように規則化されたのかしっくりしていません。 そこのところを宜しく願います。