OpCodes.Conv_R_Un Campo

Definizione

Converte il valore intero senza segno sopra lo stack di valutazione in float32.

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

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly MSIL (Intermediate Language) esadecimale e Microsoft istruzione, insieme a un breve riepilogo di riferimento:

Formato Formato assembly Description
76 conv.r.un Convertire unsigned Integer in virgola mobile, push nello F stack.

Il comportamento transitorio dello stack, in ordine sequenziale, è:

  1. value viene inserito nello stack.

  2. value viene estratto dallo stack e viene tentata l'operazione di conversione.

  3. Se la conversione ha esito positivo, il valore risultante viene inserito nello stack.

Il conv.r.un codice operativo converte l'oggetto all'inizio value dello stack nel tipo specificato nel codice operativo e lascia tale valore convertito nella parte superiore dello stack. I valori interi minori di 4 byte vengono estesi a int32 quando vengono caricati nello stack di valutazione (a meno che conv.i non venga usato o conv.u , nel qual caso il risultato è anche native int). I valori a virgola mobile vengono convertiti nel F tipo .

La conversione da numeri a virgola mobile a valori interi tronca il numero verso zero. Quando si esegue la conversione da un float64 oggetto a , float32la precisione può essere persa. Se value è troppo grande per rientrare in un valore , viene restituito un float32 (F)infinito positivo (se value è positivo) o infinito negativo (se value è negativo). Se si verifica un overflow convertendo un tipo integer in un altro, i bit di ordine elevato vengono troncati. Se il risultato è minore di un int32oggetto , il valore viene esteso per riempire lo slot.

Se si verifica un overflow che converte un tipo a virgola mobile in un intero, l'oggetto result restituito non è specificato. L'operazione conv.r.un rimuove un numero intero dallo stack, lo interpreta come senza segno e lo sostituisce con un numero a virgola mobile per rappresentare l'intero: se float32è sufficientemente ampio per rappresentare l'intero senza perdita di precisione oppure un oggetto float64.

Non vengono mai generate eccezioni quando si usa questo campo.

L'overload del metodo seguente Emit può usare il conv.r.un codice operativo:

Si applica a