다음을 통해 공유


OpCodes.Conv_R_Un 필드

정의

계산 스택 맨 위에 있는 부호 없는 정수 값을 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 

필드 값

설명

다음 표에는 간단한 참조 요약과 함께 명령의 16진수 및 MSIL(Microsoft Intermediate Language) 어셈블리 형식이 나와 있습니다.

서식 어셈블리 형식 Description
76 conv.r.un 부호 없는 정수 를 부동 소수점으로 변환하고 스택에서 푸시합니다 F .

스택 전환 동작은 순차적으로 다음과 같습니다.

  1. value 는 스택에 푸시됩니다.

  2. value 스택에서 팝되고 변환 작업이 시도됩니다.

  3. 변환에 성공하면 결과 값이 스택에 푸시됩니다.

opcode는 conv.r.un 스택 맨 위에 있는 를 opcode에 지정된 형식으로 변환 value 하고 변환된 값을 스택 맨 위에 둡니다. 4바이트 미만의 정수 값은 평가 스택에 로드될 때 로 확장 int32 됩니다(또는 conv.u 가 사용되지 않는 한 conv.i 결과도 native int). 부동 소수점 값은 형식으로 F 변환됩니다.

부동 소수점 숫자에서 정수 값으로 변환하면 숫자가 0으로 잘립니다. 에서 로 float64 변환할 때 전체 자릿수가 float32손실될 수 있습니다. 가 너무 커서 에 맞지 않으면 value 양수 무한대(양수인 경우value) 또는 음의 무한대(가 음수인 경우value)가 반환float32 (F)됩니다. 한 정수 형식을 다른 정수 형식으로 변환하는 오버플로가 발생하면 상위 비트가 잘립니다. 결과가 보다 int32작으면 값은 슬롯을 채우기 위해 기호 확장됩니다.

오버플로가 부동 소수점 형식을 정수로 변환하는 경우 반환된 result 는 지정되지 않습니다. 연산은 conv.r.un 스택에서 정수를 가져와 부호 없는 것으로 해석하고 정수를 나타내는 float32부동 소수점 숫자로 바꿉니다. 즉, 전체 자릿수 손실 없이 정수를 나타낼 수 있을 만큼 넓으면 이거나, 그렇지 않으면 입니다 float64.

이 필드를 사용할 때 예외가 throw되지 않습니다.

다음 Emit 메서드 오버로드는 opcode를 conv.r.un 사용할 수 있습니다.

적용 대상