How to convert numbers from 64 bit double precision IEEE 754 binary floating point standard to decimal system in base 10
Follow the steps below to convert a number from 64 bit double precision IEEE 754 binary floating point representation to base 10 decimal system:
- 1. Identify the elements that make up the binary representation of the number:
First bit (leftmost) indicates the sign, 1 = negative, 0 = pozitive.
The next 11 bits contain the exponent.
The last 52 bits contain the mantissa. - 2. Convert the exponent, that is allways a positive integer, from binary (base 2) to decimal (base 10).
- 3. Adjust the exponent, subtract the excess bits, 2(11 - 1) - 1 = 1,023, that is due to the 11 bit excess/bias notation.
- 4. Convert the mantissa, that represents the number's fractional part (the excess beyond the number's integer part, comma delimited), from binary (base 2) to decimal (base 10).
- 5. Put all the numbers into expression to calculate the double precision floating point decimal value:
(-1)Sign × (1 + Mantissa) × 2(Exponent adjusted)
Example: convert the number 1 - 100 0011 1101 - 1000 0000 0010 0001 0100 0000 0100 1110 0000 0100 0000 1010 1000 from 64 bit double precision IEEE 754 binary floating point system to base ten decimal (double):
- 1. Identify the elements that make up the binary representation of the number: First bit (leftmost) indicates the sign, 1 = negative, 0 = pozitive.
The next 11 bits contain the exponent: 100 0011 1101
The last 52 bits contain the mantissa:
1000 0000 0010 0001 0100 0000 0100 1110 0000 0100 0000 1010 1000 - 2. Convert the exponent, that is allways a positive integer, from binary (base 2) to decimal (base 10): 100 0011 1101(2) =
1 × 210 + 0 × 29 + 0 × 28 + 0 × 27 + 0 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 =
1,024 + 0 + 0 + 0 + 0 + 32 + 16 + 8 + 4 + 0 + 1 =
1,024 + 32 + 16 + 8 + 4 + 1 =
1,085(10) - 3. Adjust the exponent, subtract the excess bits, 2(11 - 1) - 1 = 1,023, that is due to the 11 bit excess/bias notation:
Exponent adjusted = 1,085 - 1,023 = 62 - 4. Convert the mantissa, that represents the number's fractional part (the excess beyond the number's integer part, comma delimited), from binary (base 2) to decimal (base 10): 1000 0000 0010 0001 0100 0000 0100 1110 0000 0100 0000 1010 1000(2) =
1 × 2-1 + 0 × 2-2 + 0 × 2-3 + 0 × 2-4 + 0 × 2-5 + 0 × 2-6 + 0 × 2-7 + 0 × 2-8 + 0 × 2-9 + 0 × 2-10 + 1 × 2-11 + 0 × 2-12 + 0 × 2-13 + 0 × 2-14 + 0 × 2-15 + 1 × 2-16 + 0 × 2-17 + 1 × 2-18 + 0 × 2-19 + 0 × 2-20 + 0 × 2-21 + 0 × 2-22 + 0 × 2-23 + 0 × 2-24 + 0 × 2-25 + 1 × 2-26 + 0 × 2-27 + 0 × 2-28 + 1 × 2-29 + 1 × 2-30 + 1 × 2-31 + 0 × 2-32 + 0 × 2-33 + 0 × 2-34 + 0 × 2-35 + 0 × 2-36 + 0 × 2-37 + 1 × 2-38 + 0 × 2-39 + 0 × 2-40 + 0 × 2-41 + 0 × 2-42 + 0 × 2-43 + 0 × 2-44 + 1 × 2-45 + 0 × 2-46 + 1 × 2-47 + 0 × 2-48 + 1 × 2-49 + 0 × 2-50 + 0 × 2-51 + 0 × 2-52 =
0.5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.000 488 281 25 + 0 + 0 + 0 + 0 + 0.000 015 258 789 062 5 + 0 + 0.000 003 814 697 265 625 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.000 000 014 901 161 193 847 656 25 + 0 + 0 + 0.000 000 001 862 645 149 230 957 031 25 + 0.000 000 000 931 322 574 615 478 515 625 + 0.000 000 000 465 661 287 307 739 257 812 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0.000 000 000 003 637 978 807 091 712 951 660 156 25 + 0 + 0 + 0 + 0 + 0 + 0 + 0.000 000 000 000 028 421 709 430 404 007 434 844 970 703 125 + 0 + 0.000 000 000 000 007 105 427 357 601 001 858 711 242 675 781 25 + 0 + 0.000 000 000 000 001 776 356 839 400 250 464 677 810 668 945 312 5 + 0 + 0 + 0 =
0.5 + 0.000 488 281 25 + 0.000 015 258 789 062 5 + 0.000 003 814 697 265 625 + 0.000 000 014 901 161 193 847 656 25 + 0.000 000 001 862 645 149 230 957 031 25 + 0.000 000 000 931 322 574 615 478 515 625 + 0.000 000 000 465 661 287 307 739 257 812 5 + 0.000 000 000 003 637 978 807 091 712 951 660 156 25 + 0.000 000 000 000 028 421 709 430 404 007 434 844 970 703 125 + 0.000 000 000 000 007 105 427 357 601 001 858 711 242 675 781 25 + 0.000 000 000 000 001 776 356 839 400 250 464 677 810 668 945 312 5 =
0.500 507 372 900 793 612 302 550 172 898 918 390 274 047 851 562 5(10) - 5. Put all the numbers into expression to calculate the double precision floating point decimal value: (-1)Sign × (1 + Mantissa) × 2(Exponent adjusted) =
(-1)1 × (1 + 0.500 507 372 900 793 612 302 550 172 898 918 390 274 047 851 562 5) × 262 =
-1.500 507 372 900 793 612 302 550 172 898 918 390 274 047 851 562 5 × 262 =
-6 919 868 872 153 800 704(10)1 - 100 0011 1101 - 1000 0000 0010 0001 0100 0000 0100 1110 0000 0100 0000 1010 1000 converted from 64 bit double precision IEEE 754 binary floating point representation to a decimal number (float) in decimal system (in base 10) = -6 919 868 872 153 800 704(10)