1 - 111 1111 1100 - 0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1010 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 1010: 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 1010, 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 1010
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 1010(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 + 0 × 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 =
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.068 786 621 093 755 773 159 728 050 814 010 202 884 674 072 265 625(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 773 159 728 050 814 010 202 884 674 072 265 625) × 21021 =
-1.068 786 621 093 755 773 159 728 050 814 010 202 884 674 072 265 625 × 21021 = ...
= -24 016 879 642 161 700 362 743 794 680 422 563 046 294 519 756 459 561 104 264 745 009 704 315 753 569 166 663 225 319 401 309 588 242 008 314 227 668 440 444 450 535 561 917 321 240 566 808 565 636 137 931 200 304 260 201 075 550 724 939 421 808 952 612 816 326 275 411 105 462 465 868 188 827 167 337 303 299 933 706 381 663 975 208 815 645 477 528 675 069 790 375 632 247 552 274 954 197 454 416 689 233 920
1 - 111 1111 1100 - 0001 0001 1001 1100 0000 0000 0000 0000 0000 0000 0000 0001 1010, 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 700 362 743 794 680 422 563 046 294 519 756 459 561 104 264 745 009 704 315 753 569 166 663 225 319 401 309 588 242 008 314 227 668 440 444 450 535 561 917 321 240 566 808 565 636 137 931 200 304 260 201 075 550 724 939 421 808 952 612 816 326 275 411 105 462 465 868 188 827 167 337 303 299 933 706 381 663 975 208 815 645 477 528 675 069 790 375 632 247 552 274 954 197 454 416 689 233 920(10)
Spaces were used to group digits: for binary, by 4, for decimal, by 3.