Sdílet prostřednictvím


OpCodes.Conv_I2 Pole

Definice

Převede hodnotu nad zásobníkem vyhodnocení na int16a pak ji rozšíří (vysunou) na int32.

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

Hodnota pole

Poznámky

Následující tabulka uvádí hexadecimální formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným souhrnem referenčních informací:

Formát Formát sestavení Description
68 conv.i2 Převeďte na int16, nasdílením int32 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 se zobrazí ze zásobníku a pokusí se o operaci převodu.

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

Opcode conv.i2 převede value horní část 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 načtení do zkušebního zásobníku (pokud se conv.i 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 na float64 , může dojít ke float32ztrá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í jednoho celočíselného typu na jiný, bity s vysokým pořadím se zkrátí. Pokud je výsledek menší než int32hodnota , hodnota je znaménkem rozšířena 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í zadána.

Při použití tohoto pole se nikdy nevyvolají žádné výjimky. Projděte si Conv_Ovf_I2 a Conv_Ovf_I2_Un ekvivalentní pokyny, které vyvolají výjimku, když typ výsledku nemůže správně představovat výslednou hodnotu.

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

Platí pro