次の方法で共有


符号付き整数型からの変換

符号付き整数が値の符号なし整数に変換されるかまたは符号付き整数の最大サイズと値が負でない場合値は変更されません。変換は符号付き整数の符号拡張によって行われます。符号付き整数ではあるに上位ビット符号付き整数を切り捨てることによって変換されます。結果にはこの例に示す符号なしの値として解釈されます。

int i = -3;
unsigned short u;

u = i; 
printf_s( "%hu\n", u );  // Prints 65533 

情報は long int または unsigned long int の値が フローティング の値に変換するときに符号付き整数がフローティング状態の値に変換する精度が失われる可能性がある場合失われません。

次の表は符号付き整数型への変換を示します。次の表は char の型が既定で署名すると仮定します。署名は char 型の既定値を変更することによりコンパイル時にオプションを使用すると unsigned char の種類の 符号なし整数型からの変換 の表に示す変換は次の表の変換符号付き整数型からの変換ではなく適用されます。

符号付き整数型からの変換

変換前

目的

メソッド

char1

short

符号拡張します。

char

long

符号拡張します。

char

unsigned char

保存のパターン ; 上位ビットに符号ビットとして関数を失います

char

unsigned short

短い名前 に符号拡張します ; unsigned short短い名前 を変換します。

char

unsigned long

long に符号拡張します ; unsigned long に long を変換します。

char

float

long に符号拡張します ; フローティングlong を変換します。

char

double

long に符号拡張します ; 倍精度浮動小数点型long を変換します。

char

long double

long に符号拡張します ; 倍精度浮動小数点型long を変換します。

short

char

下位バイトの格納

short

long

符号拡張します。

short

unsigned char

下位バイトの格納

short

unsigned short

保存のビット パターン ; 上位ビットに符号ビットとして関数を失います

short

unsigned long

long に符号拡張します ; unsigned long に long を変換します。

short

float

long に符号拡張します ; フローティングlong を変換します。

short

double

long に符号拡張します ; 倍精度浮動小数点型long を変換します。

short

long double

long に符号拡張します ; 倍精度浮動小数点型long を変換します。

long

char

下位バイトの格納

long

short

下位ワードの保存

long

unsigned char

下位バイトの格納

long

unsigned short

下位ワードの保存

long

unsigned long

保存のビット パターン ; 上位ビットに符号ビットとして関数を失います

long

float

フローティング として表します。long が正確に表すことができない場合は精度は失われます。

long

double

倍精度浮動小数点型 として表します。long倍精度浮動小数点型 と正確に表すことができない場合は精度は失われます。

long

long double

倍精度浮動小数点型 として表します。long倍精度浮動小数点型 と正確に表すことができない場合は精度は失われます。

1.char のすべてのエントリは char の型が既定で署名すると仮定します。

Microsoft 固有の仕様 →

32 ビットの Microsoft C コンパイラでは整数は long と同じです。int の値の順序の変換 long の場合と同じです。

終了 Microsoft 固有の仕様→

参照

概念

代入の変換