![Omron CJ1G-CPUxx Instructions Manual Download Page 539](http://html1.mh-extra.com/html/omron/cj1g-cpuxx/cj1g-cpuxx_instructions-manual_742491539.webp)
518
Floating-point Math Instructions
Section 3-15
NaN
NaN (not a number) is produced when the result of calculations, such as 0.0/
0.0,
∞
/
∞
, or
∞
–
∞
, does not correspond to a number or infinity. The exponent
will be 255 (2
8
– 1) and the mantissa will be not 0.
Note There are no specifications for the sign of NaN or the value of the mantissa
field (other than to be not 0).
Floating-point Arithmetic Results
Rounding Results
The following methods will be used to round results when the number of digits
in the accurate result of floating-point arithmetic exceeds the significant digits
of internal processing expressions.
If the result is close to one of two internal floating-point expressions, the
closer expression will be used. If the result is midway between two internal
floating-point expressions, the result will be rounded so that the last digit of
the mantissa is 0.
Overflows, Underflows,
and Illegal Calculations
Overflows will be output as either positive or negative infinity, depending on
the sign of the result. Underflows will be output as either positive or negative
zero, depending on the sign of the result.
Illegal calculations will result in NaN. Illegal calculations include adding infinity
to a number with the opposite sign, subtracting infinity from a number with the
opposite sign, multiplying zero and infinity, dividing zero by zero, or dividing
infinity by infinity.
The value of the result may not be correct if an overflow occurs when convert-
ing a floating-point number to an integer.
Precautions in Handling
Special Values
The following precautions apply to handling zero, infinity, and NaN.
• The sum of positive zero and negative zero is positive zero.
• The difference between zeros of the same sign is positive zero.
• If any operand is a NaN, the results will be a NaN.
• Positive zero and negative zero are treated as equivalent in comparisons.
• Comparison or equivalency tests on one or more NaN will always be true
for != and always be false for all other instructions.
Floating-point Calculation Results
When the absolute value of the result is greater than the maximum value that
can be expressed for floating-point data, the Overflow Flag will turn ON and
the result will be output as
±∞
. If the result is positive, it will be output as +
∞
; if
negative, then –
∞
.
The Equals Flag will only turn ON when both the exponent (e) and the man-
tissa (f) are zero after a calculation. A calculation result will also be output as
zero when the absolute value of the result is less than the minimum value that
can be expressed for floating-point data. In that case the Underflow Flag will
turn ON.
Example
In this program example, the X-axis and Y-axis coordinates (x, y) are provided
by 4-digit BCD content of D00000 and D00001. The distance (r) from the ori-
gin and the angle (
θ
, in degrees) are found and output to D00100 and
D00101. In the result, everything to the right of the decimal point is truncated.
Summary of Contents for CJ1G-CPUxx
Page 3: ...iv N o t i c e ...
Page 5: ...vi ...
Page 21: ...xxii Conformance to EC Directives 6 ...
Page 35: ......
Page 1131: ...1110 CJ series Instruction Execution Times and Number of Steps Section 4 2 ...