Chapter 5 Understanding Common Devices
5-13
Equation:
The double-precision floating-point numbers range from ±2
-1022
to ±2
+1024
, and correspond to the range from
±2.2250×10
-308
to ±1.7976×10
+308
.
The AH500 series PLC uses four consecutive registers to form a 64-bit floating-point number. Take (D3, D2, D1, D0)
for example.
S
E10
E9 E8 E1 E0 A51 A50 A49 A6 A5 A4 A3 A2 A1 A0
b0b1b2b3b4b5b6b49b50b51b52b53b60b61b62b63
2 2 2 2 2 2 2 2 2 2 2 2 22 2
D1(b15~b0)
D2~D0
Exponent (11 bits)
Mantissa (52 bits)
Mantissa sign bit (0: Positive; 1: Negative)
When b0~b63 are zeros, the content is zero.
The position where the decimal point is hidden
Example 1:
23 is represented by the single-precision floating-point number.
Step 1: Convert 23 into the binary number, i.e. 23.0=10111.
Step 2: Normalize the binary number, i.e. 10111=1.0111 ×2
4
(0111 is the mantissa, and 4 is the exponent.).
Step 3: Get the value of the exponent.
∵ E-B=4→E-127=4 ∴ E=131=10000011
2
Step 4: Combine the sign bit, the exponent, and the mantissa to form the floating-point number.
0 10000011 01110000000000000000000
2
=41B80000
16
23 is represented by the double-precision floating-point number.
Step 1: Convert 23 into the binary number, i.e. 23.0=10111.
Step 2: Normalize the binary number, i.e. 10111=1.0111 ×2
4
(0111 is the mantissa, and 4 is the exponent.).
Step 3: Get the value of the exponent.
∵ E-B=4→E-1023=4 ∴ E=1027=10000000011
2
Step 4: Combine the sign bit, the exponent, and the mantissa to form the floating-point number.
0 10000000011 0111000000000000000000000000000000000000000000000000
2
=403700000000000
16
Example 2:
-23 is represented by the single-precision floating-point number.
The steps of converting -23.0 into the floating-point number are the same as those of converting 23.0 into the
floating-point number, except that the sign bit is 1.
1 10000011 01110000000000000000000
2
=C1B80000
16
-23 is represented by the double-precision floating-point number.
The steps of converting -23.0 into the floating-point number are the same as those of converting 23.0 into the
floating-point number, except that the sign bit is 1.