OpCodes.Div Fält

Definition

Delar upp två värden och push-överför resultatet som en flyttal (typ F) eller kvot (typ int32) till utvärderingsstacken.

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

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
5B div Delar upp två värden för att returnera ett kvot- eller flyttalsresultat.

Stackens övergångsbeteende i sekventiell ordning är:

  1. value1 skickas till stacken.

  2. value2 skickas till stacken.

  3. value2 och value1 poppas från stacken; value1 delas med value2.

  4. Resultatet skickas till stacken.

result = value1 div value2 uppfyller följande villkor:

| result | = | value1 | / | value2 |, och:

sign(result) = +, if sign(value1) = sign(value2), eller -, if sign(value1) ~= sign(value2)

Instruktionen div beräknar resultatet och push-överför det till stacken.

Heltalsdivisionen trunkerar mot noll.

Division av ett begränsat tal med noll ger det korrekt signerade oändliga värdet.

Om noll divideras med noll eller oändligt med oändligheten genereras värdet NaN (Not-A-Number). Ett tal dividerat med oändligheten ger ett nollvärde.

Integralåtgärder genererar ArithmeticException om resultatet inte kan representeras i resultattypen. Detta kan inträffa om value1 är det maximala negativa värdet och value2 är -1.

Integralåtgärder genererar DivideByZeroException om value2 är noll.

Observera att på Intel-baserade plattformar genereras en OverflowException vid databehandling (minint div -1). Flyttalsåtgärder utlöser aldrig ett undantag (de producerar NaN eller infinities i stället).

Följande Emit metodöverlagring kan använda div opcode:

Gäller för