評価スタックの一番上の符号なし整数値を float32 に変換します。
Public Shared ReadOnly Conv_R_Un As OpCode
[C#]
public static readonly OpCode Conv_R_Un;
[C++]
public: static OpCode Conv_R_Un;
[JScript]
public static var Conv_R_Un : OpCode;
解説
命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。
形式 | アセンブリ形式 | 説明 |
---|---|---|
76 | conv.r.un | 符号なし整数を浮動小数点数に変換し、スタックに F をプッシュします。 |
スタックの遷移動作を順番に示すと、次のようになります。
- value がスタックにプッシュされます。
- value がスタックからポップされ、変換演算が試行されます。
- 正常に変換された場合は、結果値がスタックにプッシュされます。
conv.r.un オペコードは、スタックの一番上の value をオペコードで指定された型に変換し、変換した値をスタックの一番上に残します。4 バイト未満の整数値は、評価スタックに読み込まれるときに int32 に拡張されます。ただし、 conv.i または conv.u が使用される場合を除きます。この場合は、結果も natural int になります。浮動小数点値は、 F 型に変換されます。
浮動小数点数から整数値への変換では、数値が 0 方向に切り捨てられます。 float64 から float32 への変換時に、有効桁数が減ることがあります。value が float32 (F) には大きすぎる場合は、正の無限大 (value が正の場合) または負の無限大 (value が負の場合) が返されます。ある整数型から別の整数型への変換でオーバーフローが発生すると、上位ビットは切り捨てられます。結果が int32 より小さい場合は、スロットを満たすために値が符号拡張されます。
浮動小数点型を整数に変換するときにオーバーフローが発生した場合、返される result は指定されません。 conv.r.un 演算は、整数をスタックから取り出し、符号なしの値として解釈し、その値を整数を表す浮動小数点数と置き換えます。この浮動小数点数に、有効桁数を減らさずに整数を表すことができるだけの桁数がある場合は float32 、それ以外の場合は float64 になります。
このフィールドを使用するときに例外がスローされることはありません。
conv.r.un オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。
- ILGenerator.Emit(OpCode)
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ