long
lrem |
Stack
..., value1.word1, value1.word2, value2.word1, value2.word2 ..., result.word1, result.word2
Description
Both value1 and value2 must be of type long
. The values are popped from the operand stack. The long
result is value1 - (value1 / value2) * value2. The result is pushed onto the operand stack.
The result of the lrem instruction is such that (a/b)*b
+
(a%b)
is equal to a
. This identity holds even in the special case that the dividend is the negative long
of largest possible magnitude for its type and the divisor is -1
(the remainder is 0
). It follows from this rule that the result of the remainder operation can be negative only if the dividend is negative and can be positive only if the dividend is positive; moreover, the magnitude of the result is always less than the magnitude of the divisor.
Runtime Exception
If the value of the divisor for a long
remainder operator is 0, lrem throws an ArithmeticException
.
Contents | Prev | Next | Index
Java Virtual Machine Specification (HTML generated by dkramer on February 25, 1997)
Copyright © 1996 Sun Microsystems, Inc.
All rights reserved
Please send any comments or corrections to doug.kramer@sun.com