Sdílet prostřednictvím


OpCodes.Conv_R8 Pole

Definice

Převede hodnotu nad zásobníkem vyhodnocení na float64.

public: static initonly System::Reflection::Emit::OpCode Conv_R8;
public static readonly System.Reflection.Emit.OpCode Conv_R8;
 staticval mutable Conv_R8 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Conv_R8 As OpCode 

Hodnota pole

Poznámky

Následující tabulka uvádí šestnáctkový formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným přehledem referencí:

Formát Formát sestavení Description
6C conv.r8 Převeďte na float64, nasdílením F zásobníku.

Přechodné chování zásobníku v sekvenčním pořadí je:

  1. value se nasdílí do zásobníku.

  2. value vyskočil ze zásobníku a došlo k pokusu o operaci převodu.

  3. Pokud je převod úspěšný, výsledná hodnota se vloží do zásobníku.

Opcode conv.r8 převede value objekt v horní části zásobníku na typ zadaný v opcode a tuto převedenou hodnotu ponechá v horní části zásobníku. Celočíselné hodnoty menší než 4 bajty se rozšíří na int32 při jejich načtení do vyhodnocovacího zásobníku (pokud conv.i se nepoužívá nebo conv.u se nepoužívá, v takovém případě je výsledek také native int). Hodnoty s plovoucí desetinou čárkou se převedou na F typ .

Převod z čísel s plovoucí desetinou čárkou na celočíselné hodnoty zkrátí číslo směrem k nule. Při převodu z objektu float64float32na může dojít ke ztrátě přesnosti. Pokud value je příliš velká, aby se vešla do float32 (F), vrátí se kladné nekonečno (pokud value je kladné) nebo záporné nekonečno (pokud value je záporné). Pokud dojde k přetečení při převodu jednoho celočíselného typu na jiný, bity s vysokým pořadím jsou zkráceny. Pokud je výsledek menší než int32hodnota , hodnota se znaménkem rozšíří o vyplnění slotu.

Pokud dojde k přetečení při převodu typu s plovoucí desetinou čárkou na celé číslo, vrácená hodnota není neurčitá.

Při použití tohoto pole se nikdy nevyvolají žádné výjimky.

Následující Emit přetížení metody může použít conv.r8 opcode:

Platí pro