符号なし整数型からの変換
符号なし整数を整数または浮動小数点型に変換する場合、元の値が結果の型で表現できる場合は、値が変更されることはありません。
コンパイラによって符号なし整数がより大きいサイズの整数に変換されると、その値はゼロ拡張されます。 より小さいサイズの整数に変換されると、上位ビットは切り捨てられます。 結果は、この例に示すように、結果の型を使用して解釈されます。
unsigned k = 65533;
short j;
j = k;
printf_s( "%hd\n", j ); // Prints -3
コンパイラによって符号なし整数が浮動小数点型に変換される場合、元の値が結果の型で正確に表現できないときは、結果は次に大きいまたは次に小さい表現可能な値になります。
整数型と浮動小数点型のサイズの詳細については、「基本型のストレージ」を参照してください。
Microsoft 固有の仕様
Microsoft コンパイラでは、 unsigned
(または unsigned int
) と unsigned long
は区別されますが、同等の型です。 unsigned int
値の変換は、unsigned long
の変換と同様に実行されます。
Microsoft 固有の仕様はここまで
次の表は、符号なし整数型からの変換をまとめたものです。
符号なし整数型からの変換の表
From | 終了 | メソッド |
---|---|---|
unsigned char |
char |
ビット パターンを維持、上位ビットが符号ビットになる。 |
unsigned char |
short |
ゼロ拡張。 |
unsigned char |
long |
ゼロ拡張。 |
unsigned char |
long long |
ゼロ拡張。 |
unsigned char |
unsigned short |
ゼロ拡張。 |
unsigned char |
unsigned long |
ゼロ拡張。 |
unsigned char |
unsigned long long |
ゼロ拡張。 |
unsigned char |
float |
float に正確に変換 |
unsigned char |
double |
double に正確に変換 |
unsigned char |
long double |
long double に正確に変換 |
unsigned short |
char |
下位バイトを維持。 |
unsigned short |
short |
ビット パターンを維持、上位ビットが符号ビットになる。 |
unsigned short |
long |
ゼロ拡張。 |
unsigned short |
long long |
ゼロ拡張。 |
unsigned short |
unsigned char |
下位バイトを維持。 |
unsigned short |
unsigned long |
ゼロ拡張。 |
unsigned short |
unsigned long long |
ゼロ拡張。 |
unsigned short |
float |
float に正確に変換 |
unsigned short |
double |
double に正確に変換 |
unsigned short |
long double |
long double に正確に変換 |
unsigned long |
char |
下位バイトを維持。 |
unsigned long |
short |
下位ワードを維持。 |
unsigned long |
long |
ビット パターンを維持、上位ビットが符号ビットになる。 |
unsigned long |
long long |
ゼロ拡張。 |
unsigned long |
unsigned char |
下位バイトを維持。 |
unsigned long |
unsigned short |
下位ワードを維持。 |
unsigned long |
unsigned long long |
ゼロ拡張。 |
unsigned long |
float |
最も近い表現可能な float に変換 |
unsigned long |
double |
double に正確に変換 |
unsigned long |
long double |
long double に正確に変換 |
unsigned long long |
char |
下位バイトを維持。 |
unsigned long long |
short |
下位ワードを維持。 |
unsigned long long |
long |
下位 dword を維持。 |
unsigned long long |
long long |
ビット パターンを維持、上位ビットが符号ビットになる。 |
unsigned long long |
unsigned char |
下位バイトを維持。 |
unsigned long long |
unsigned short |
下位ワードを維持。 |
unsigned long long |
unsigned long |
下位 dword を維持。 |
unsigned long long |
float |
最も近い表現可能な float に変換 |
unsigned long long |
double |
最も近い表現可能な double に変換 |
unsigned long long |
long double |
最も近い表現可能な long double に変換 |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示