OpCodes.Conv_R_Un Campo
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Converte o valor inteiro sem sinal no topo da pilha de avaliação para 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
Valor de Campo
Observações
A tabela seguinte lista o formato hexadecimal e assembly da Microsoft Intermediate Language (MSIL) da instrução, juntamente com um breve resumo de referência:
| Formato | Formato de Montagem | Descrição |
|---|---|---|
| 76 | conv.r.un | Converter inteiro não assinado em ponto flutuante, empurrando F para a pilha. |
O comportamento de transição da pilha, por ordem sequencial, é:
valueé empurrado para a pilha.valueé retirado da pilha e a operação de conversão é tentada.Se a conversão for bem-sucedida, o valor resultante é empurrado para a pilha.
O conv.r.un opcode converte o topo value da pilha para o tipo especificado no opcode, deixando esse valor convertido no topo da pilha. Valores inteiros inferiores a 4 bytes são estendidos até int32 quando são carregados na pilha de avaliação (a menos que conv.i ou conv.u seja usado, caso em que o resultado também native inté ). Os valores de vírgula flutuante são convertidos para o F tipo.
A conversão de números de vírgula flutuante para valores inteiros trunca o número em direção a zero. Ao converter de a float64 para a float32, a precisão pode ser perdida. Se value for demasiado grande para caber num float32 (F), o infinito positivo (se value for positivo) ou o infinito negativo (se value for negativo) é devolvido. Se ocorrer um transbordamento ao converter um tipo inteiro para outro, os bits de ordem superior são truncados. Se o resultado for menor que um int32, o valor é estendido por sinal para preencher o espaço.
Se ocorrer overflow ao converter um tipo de ponto flutuante num inteiro, o result retorno não é especificado. A conv.r.un operação retira um inteiro da pilha, interpreta-o como sem sinal e substitui-lo por um número de ponto flutuante para representar o inteiro: ou um float32, se este for suficientemente largo para representar o inteiro sem perda de precisão, ou então um float64.
Nunca são feitas exceções ao usar este campo.
O seguinte Emit método de sobrecarga pode usar o conv.r.un opcode: