OpCodes.Conv_R_Un Campo

Definição

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, é:

  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 é 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:

Aplica-se a