1 - 111 1111 1100 - 0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1011 64 Bit Double Precision IEEE 754 Binary Floating Point Representation Standard Converted to Decimal
1 - 111 1111 1100 - 0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1011: 64 bit double precision IEEE 754 binary floating point representation standard converted to decimal
What are the steps to convert
1 - 111 1111 1100 - 0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1011, a 64 bit double precision IEEE 754 binary floating point representation standard to decimal?
1. Identify the elements that make up the binary representation of the number:
The first bit (the leftmost) indicates the sign,
1 = negative, 0 = positive.
1
The next 11 bits contain the exponent:
111 1111 1100
The last 52 bits contain the mantissa:
0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1011
2. Convert the exponent from binary (from base 2) to decimal (in base 10).
The exponent is allways a positive integer.
111 1111 1100(2) =
1 × 210 + 1 × 29 + 1 × 28 + 1 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 0 × 20 =
1,024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 0 + 0 =
1,024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 =
2,044(10)
3. Adjust the exponent.
Subtract the excess bits: 2(11 - 1) - 1 = 1023,
that is due to the 11 bit excess/bias notation.
The exponent, adjusted = 2,044 - 1023 = 1021
4. Convert the mantissa from binary (from base 2) to decimal (in base 10).
The mantissa represents the fractional part of the number (what comes after the whole part of the number, separated from it by a comma).
0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1011(2) =
0 × 2-1 + 0 × 2-2 + 0 × 2-3 + 1 × 2-4 + 0 × 2-5 + 0 × 2-6 + 0 × 2-7 + 1 × 2-8 + 1 × 2-9 + 0 × 2-10 + 0 × 2-11 + 1 × 2-12 + 1 × 2-13 + 1 × 2-14 + 0 × 2-15 + 0 × 2-16 + 0 × 2-17 + 0 × 2-18 + 0 × 2-19 + 0 × 2-20 + 0 × 2-21 + 0 × 2-22 + 0 × 2-23 + 0 × 2-24 + 0 × 2-25 + 0 × 2-26 + 0 × 2-27 + 0 × 2-28 + 0 × 2-29 + 0 × 2-30 + 0 × 2-31 + 0 × 2-32 + 0 × 2-33 + 0 × 2-34 + 0 × 2-35 + 0 × 2-36 + 0 × 2-37 + 0 × 2-38 + 0 × 2-39 + 0 × 2-40 + 0 × 2-41 + 0 × 2-42 + 0 × 2-43 + 0 × 2-44 + 0 × 2-45 + 0 × 2-46 + 0 × 2-47 + 1 × 2-48 + 1 × 2-49 + 0 × 2-50 + 1 × 2-51 + 1 × 2-52 =
0 + 0 + 0 + 0.062 5 + 0 + 0 + 0 + 0.003 906 25 + 0.001 953 125 + 0 + 0 + 0.000 244 140 625 + 0.000 122 070 312 5 + 0.000 061 035 156 25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.000 000 000 000 003 552 713 678 800 500 929 355 621 337 890 625 + 0.000 000 000 000 001 776 356 839 400 250 464 677 810 668 945 312 5 + 0 + 0.000 000 000 000 000 444 089 209 850 062 616 169 452 667 236 328 125 + 0.000 000 000 000 000 222 044 604 925 031 308 084 726 333 618 164 062 5 =
0.062 5 + 0.003 906 25 + 0.001 953 125 + 0.000 244 140 625 + 0.000 122 070 312 5 + 0.000 061 035 156 25 + 0.000 000 000 000 003 552 713 678 800 500 929 355 621 337 890 625 + 0.000 000 000 000 001 776 356 839 400 250 464 677 810 668 945 312 5 + 0.000 000 000 000 000 444 089 209 850 062 616 169 452 667 236 328 125 + 0.000 000 000 000 000 222 044 604 925 031 308 084 726 333 618 164 062 5 =
0.068 786 621 093 755 995 204 332 975 845 318 287 611 007 690 429 687 5(10)
5. Put all the numbers into expression to calculate the double precision floating point decimal value:
(-1)Sign × (1 + Mantissa) × 2(Adjusted exponent) =
(-1)1 × (1 + 0.068 786 621 093 755 995 204 332 975 845 318 287 611 007 690 429 687 5) × 21021 =
-1.068 786 621 093 755 995 204 332 975 845 318 287 611 007 690 429 687 5 × 21021 = ...
= -24 016 879 642 161 705 352 344 568 517 222 092 187 226 302 348 555 976 272 892 896 098 348 169 509 937 272 756 255 049 073 719 752 704 403 227 959 257 693 167 806 652 672 398 559 350 497 903 536 620 122 083 048 233 755 913 154 101 524 953 604 186 666 804 110 170 579 022 012 930 422 501 580 688 527 147 286 626 959 844 183 839 947 430 953 816 597 639 068 837 592 642 821 637 656 380 850 435 530 276 714 053 632
1 - 111 1111 1100 - 0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1011, a 64 bit double precision IEEE 754 binary floating point representation standard to a decimal number, written in base ten (double) = -24 016 879 642 161 705 352 344 568 517 222 092 187 226 302 348 555 976 272 892 896 098 348 169 509 937 272 756 255 049 073 719 752 704 403 227 959 257 693 167 806 652 672 398 559 350 497 903 536 620 122 083 048 233 755 913 154 101 524 953 604 186 666 804 110 170 579 022 012 930 422 501 580 688 527 147 286 626 959 844 183 839 947 430 953 816 597 639 068 837 592 642 821 637 656 380 850 435 530 276 714 053 632(10)
Spaces were used to group digits: for binary, by 4, for decimal, by 3.