OpCodes.Conv_R_Un Campo

Definição

Converte o valor inteiro sem sinal na parte superior da pilha de avaliação em 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 do campo

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e Microsoft linguagem intermediária (MSIL) da instrução, juntamente com um breve resumo de referência:

Formato Formato de assembly Description
76 conv.r.un Converter inteiro sem sinal em ponto flutuante, empurrando F na pilha.

O comportamento de transição da pilha, em ordem sequencial, é:

  1. value é empurrado para a pilha.

  2. value é retirado da pilha e a operação de conversão é tentada.

  3. Se a conversão for bem-sucedida, o valor resultante será enviado por push para a pilha.

O conv.r.un opcode converte a value parte superior da pilha para o tipo especificado no opcode e deixa esse valor convertido na parte superior da pilha. Valores inteiros de menos de 4 bytes são estendidos para int32 quando são carregados conv.i na pilha de avaliação (a menos que ou conv.u seja usado, nesse caso o resultado também native inté). Os valores de ponto flutuante são convertidos no F tipo.

A conversão de números de ponto flutuante em valores inteiros trunca o número em direção a zero. Ao converter de um float64 para um float32, a precisão pode ser perdida. Se value for muito grande para caber em um float32 (F)infinito positivo (se value for positivo) ou infinito negativo (se value for negativo) será retornado. Se ocorrer estouro convertendo um tipo inteiro em outro, os bits de ordem alta serão truncados. Se o resultado for menor que um int32, o valor será estendido para preencher o slot.

Se ocorrer estouro convertendo um tipo de ponto flutuante em um inteiro, o result retornado não será especificado. A conv.r.un operação tira um inteiro da pilha, interpreta-o como sem sinal e substitui-o por um número de ponto flutuante para representar o inteiro: um float32, se este for largo o suficiente para representar o inteiro sem perda de precisão, ou então um float64.

Nenhuma exceção é gerada ao usar esse campo.

A sobrecarga do método Emit a seguir pode usar o conv.r.un opcode:

Aplica-se a