Convert 11 111 111 111 111 110 999 999 999 999 999 to 32 Bit Single Precision IEEE 754 Binary Floating Point Standard, From a Base 10 Decimal Number

How to convert the decimal number 11 111 111 111 111 110 999 999 999 999 999(10)
to
32 bit single precision IEEE 754 binary floating point
(1 bit for sign, 8 bits for exponent, 23 bits for mantissa)

1. Divide the number repeatedly by 2.

Keep track of each remainder.

We stop when we get a quotient that is equal to zero.

  • division = quotient + remainder;
  • 11 111 111 111 111 110 999 999 999 999 999 ÷ 2 = 5 555 555 555 555 555 499 999 999 999 999 + 1;
  • 5 555 555 555 555 555 499 999 999 999 999 ÷ 2 = 2 777 777 777 777 777 749 999 999 999 999 + 1;
  • 2 777 777 777 777 777 749 999 999 999 999 ÷ 2 = 1 388 888 888 888 888 874 999 999 999 999 + 1;
  • 1 388 888 888 888 888 874 999 999 999 999 ÷ 2 = 694 444 444 444 444 437 499 999 999 999 + 1;
  • 694 444 444 444 444 437 499 999 999 999 ÷ 2 = 347 222 222 222 222 218 749 999 999 999 + 1;
  • 347 222 222 222 222 218 749 999 999 999 ÷ 2 = 173 611 111 111 111 109 374 999 999 999 + 1;
  • 173 611 111 111 111 109 374 999 999 999 ÷ 2 = 86 805 555 555 555 554 687 499 999 999 + 1;
  • 86 805 555 555 555 554 687 499 999 999 ÷ 2 = 43 402 777 777 777 777 343 749 999 999 + 1;
  • 43 402 777 777 777 777 343 749 999 999 ÷ 2 = 21 701 388 888 888 888 671 874 999 999 + 1;
  • 21 701 388 888 888 888 671 874 999 999 ÷ 2 = 10 850 694 444 444 444 335 937 499 999 + 1;
  • 10 850 694 444 444 444 335 937 499 999 ÷ 2 = 5 425 347 222 222 222 167 968 749 999 + 1;
  • 5 425 347 222 222 222 167 968 749 999 ÷ 2 = 2 712 673 611 111 111 083 984 374 999 + 1;
  • 2 712 673 611 111 111 083 984 374 999 ÷ 2 = 1 356 336 805 555 555 541 992 187 499 + 1;
  • 1 356 336 805 555 555 541 992 187 499 ÷ 2 = 678 168 402 777 777 770 996 093 749 + 1;
  • 678 168 402 777 777 770 996 093 749 ÷ 2 = 339 084 201 388 888 885 498 046 874 + 1;
  • 339 084 201 388 888 885 498 046 874 ÷ 2 = 169 542 100 694 444 442 749 023 437 + 0;
  • 169 542 100 694 444 442 749 023 437 ÷ 2 = 84 771 050 347 222 221 374 511 718 + 1;
  • 84 771 050 347 222 221 374 511 718 ÷ 2 = 42 385 525 173 611 110 687 255 859 + 0;
  • 42 385 525 173 611 110 687 255 859 ÷ 2 = 21 192 762 586 805 555 343 627 929 + 1;
  • 21 192 762 586 805 555 343 627 929 ÷ 2 = 10 596 381 293 402 777 671 813 964 + 1;
  • 10 596 381 293 402 777 671 813 964 ÷ 2 = 5 298 190 646 701 388 835 906 982 + 0;
  • 5 298 190 646 701 388 835 906 982 ÷ 2 = 2 649 095 323 350 694 417 953 491 + 0;
  • 2 649 095 323 350 694 417 953 491 ÷ 2 = 1 324 547 661 675 347 208 976 745 + 1;
  • 1 324 547 661 675 347 208 976 745 ÷ 2 = 662 273 830 837 673 604 488 372 + 1;
  • 662 273 830 837 673 604 488 372 ÷ 2 = 331 136 915 418 836 802 244 186 + 0;
  • 331 136 915 418 836 802 244 186 ÷ 2 = 165 568 457 709 418 401 122 093 + 0;
  • 165 568 457 709 418 401 122 093 ÷ 2 = 82 784 228 854 709 200 561 046 + 1;
  • 82 784 228 854 709 200 561 046 ÷ 2 = 41 392 114 427 354 600 280 523 + 0;
  • 41 392 114 427 354 600 280 523 ÷ 2 = 20 696 057 213 677 300 140 261 + 1;
  • 20 696 057 213 677 300 140 261 ÷ 2 = 10 348 028 606 838 650 070 130 + 1;
  • 10 348 028 606 838 650 070 130 ÷ 2 = 5 174 014 303 419 325 035 065 + 0;
  • 5 174 014 303 419 325 035 065 ÷ 2 = 2 587 007 151 709 662 517 532 + 1;
  • 2 587 007 151 709 662 517 532 ÷ 2 = 1 293 503 575 854 831 258 766 + 0;
  • 1 293 503 575 854 831 258 766 ÷ 2 = 646 751 787 927 415 629 383 + 0;
  • 646 751 787 927 415 629 383 ÷ 2 = 323 375 893 963 707 814 691 + 1;
  • 323 375 893 963 707 814 691 ÷ 2 = 161 687 946 981 853 907 345 + 1;
  • 161 687 946 981 853 907 345 ÷ 2 = 80 843 973 490 926 953 672 + 1;
  • 80 843 973 490 926 953 672 ÷ 2 = 40 421 986 745 463 476 836 + 0;
  • 40 421 986 745 463 476 836 ÷ 2 = 20 210 993 372 731 738 418 + 0;
  • 20 210 993 372 731 738 418 ÷ 2 = 10 105 496 686 365 869 209 + 0;
  • 10 105 496 686 365 869 209 ÷ 2 = 5 052 748 343 182 934 604 + 1;
  • 5 052 748 343 182 934 604 ÷ 2 = 2 526 374 171 591 467 302 + 0;
  • 2 526 374 171 591 467 302 ÷ 2 = 1 263 187 085 795 733 651 + 0;
  • 1 263 187 085 795 733 651 ÷ 2 = 631 593 542 897 866 825 + 1;
  • 631 593 542 897 866 825 ÷ 2 = 315 796 771 448 933 412 + 1;
  • 315 796 771 448 933 412 ÷ 2 = 157 898 385 724 466 706 + 0;
  • 157 898 385 724 466 706 ÷ 2 = 78 949 192 862 233 353 + 0;
  • 78 949 192 862 233 353 ÷ 2 = 39 474 596 431 116 676 + 1;
  • 39 474 596 431 116 676 ÷ 2 = 19 737 298 215 558 338 + 0;
  • 19 737 298 215 558 338 ÷ 2 = 9 868 649 107 779 169 + 0;
  • 9 868 649 107 779 169 ÷ 2 = 4 934 324 553 889 584 + 1;
  • 4 934 324 553 889 584 ÷ 2 = 2 467 162 276 944 792 + 0;
  • 2 467 162 276 944 792 ÷ 2 = 1 233 581 138 472 396 + 0;
  • 1 233 581 138 472 396 ÷ 2 = 616 790 569 236 198 + 0;
  • 616 790 569 236 198 ÷ 2 = 308 395 284 618 099 + 0;
  • 308 395 284 618 099 ÷ 2 = 154 197 642 309 049 + 1;
  • 154 197 642 309 049 ÷ 2 = 77 098 821 154 524 + 1;
  • 77 098 821 154 524 ÷ 2 = 38 549 410 577 262 + 0;
  • 38 549 410 577 262 ÷ 2 = 19 274 705 288 631 + 0;
  • 19 274 705 288 631 ÷ 2 = 9 637 352 644 315 + 1;
  • 9 637 352 644 315 ÷ 2 = 4 818 676 322 157 + 1;
  • 4 818 676 322 157 ÷ 2 = 2 409 338 161 078 + 1;
  • 2 409 338 161 078 ÷ 2 = 1 204 669 080 539 + 0;
  • 1 204 669 080 539 ÷ 2 = 602 334 540 269 + 1;
  • 602 334 540 269 ÷ 2 = 301 167 270 134 + 1;
  • 301 167 270 134 ÷ 2 = 150 583 635 067 + 0;
  • 150 583 635 067 ÷ 2 = 75 291 817 533 + 1;
  • 75 291 817 533 ÷ 2 = 37 645 908 766 + 1;
  • 37 645 908 766 ÷ 2 = 18 822 954 383 + 0;
  • 18 822 954 383 ÷ 2 = 9 411 477 191 + 1;
  • 9 411 477 191 ÷ 2 = 4 705 738 595 + 1;
  • 4 705 738 595 ÷ 2 = 2 352 869 297 + 1;
  • 2 352 869 297 ÷ 2 = 1 176 434 648 + 1;
  • 1 176 434 648 ÷ 2 = 588 217 324 + 0;
  • 588 217 324 ÷ 2 = 294 108 662 + 0;
  • 294 108 662 ÷ 2 = 147 054 331 + 0;
  • 147 054 331 ÷ 2 = 73 527 165 + 1;
  • 73 527 165 ÷ 2 = 36 763 582 + 1;
  • 36 763 582 ÷ 2 = 18 381 791 + 0;
  • 18 381 791 ÷ 2 = 9 190 895 + 1;
  • 9 190 895 ÷ 2 = 4 595 447 + 1;
  • 4 595 447 ÷ 2 = 2 297 723 + 1;
  • 2 297 723 ÷ 2 = 1 148 861 + 1;
  • 1 148 861 ÷ 2 = 574 430 + 1;
  • 574 430 ÷ 2 = 287 215 + 0;
  • 287 215 ÷ 2 = 143 607 + 1;
  • 143 607 ÷ 2 = 71 803 + 1;
  • 71 803 ÷ 2 = 35 901 + 1;
  • 35 901 ÷ 2 = 17 950 + 1;
  • 17 950 ÷ 2 = 8 975 + 0;
  • 8 975 ÷ 2 = 4 487 + 1;
  • 4 487 ÷ 2 = 2 243 + 1;
  • 2 243 ÷ 2 = 1 121 + 1;
  • 1 121 ÷ 2 = 560 + 1;
  • 560 ÷ 2 = 280 + 0;
  • 280 ÷ 2 = 140 + 0;
  • 140 ÷ 2 = 70 + 0;
  • 70 ÷ 2 = 35 + 0;
  • 35 ÷ 2 = 17 + 1;
  • 17 ÷ 2 = 8 + 1;
  • 8 ÷ 2 = 4 + 0;
  • 4 ÷ 2 = 2 + 0;
  • 2 ÷ 2 = 1 + 0;
  • 1 ÷ 2 = 0 + 1;

2. Construct the base 2 representation of the positive number.

Take all the remainders starting from the bottom of the list constructed above.

11 111 111 111 111 110 999 999 999 999 999(10) =


1000 1100 0011 1101 1110 1111 1011 0001 1110 1101 1011 1001 1000 0100 1001 1001 0001 1100 1011 0100 1100 1101 0111 1111 1111 1111(2)


3. Normalize the binary representation of the number.

Shift the decimal mark 103 positions to the left so that only one non zero digit remains to the left of it:

11 111 111 111 111 110 999 999 999 999 999(10) =


1000 1100 0011 1101 1110 1111 1011 0001 1110 1101 1011 1001 1000 0100 1001 1001 0001 1100 1011 0100 1100 1101 0111 1111 1111 1111(2) =


1000 1100 0011 1101 1110 1111 1011 0001 1110 1101 1011 1001 1000 0100 1001 1001 0001 1100 1011 0100 1100 1101 0111 1111 1111 1111(2) × 20 =


1.0001 1000 0111 1011 1101 1111 0110 0011 1101 1011 0111 0011 0000 1001 0011 0010 0011 1001 0110 1001 1001 1010 1111 1111 1111 111(2) × 2103


4. Up to this moment, there are the following elements that would feed into the 32 bit single precision IEEE 754 binary floating point representation:

Sign: 0 (a positive number)


Exponent (unadjusted): 103


Mantissa (not normalized):
1.0001 1000 0111 1011 1101 1111 0110 0011 1101 1011 0111 0011 0000 1001 0011 0010 0011 1001 0110 1001 1001 1010 1111 1111 1111 111


5. Adjust the exponent.

Use the 8 bit excess/bias notation:

Exponent (adjusted) =


Exponent (unadjusted) + 2(8-1) - 1 =


103 + 2(8-1) - 1 =


(103 + 127)(10) =


230(10)


6. Convert the adjusted exponent from the decimal (base 10) to 8 bit binary.

Use the same technique of repeatedly dividing by 2:

  • division = quotient + remainder;
  • 230 ÷ 2 = 115 + 0;
  • 115 ÷ 2 = 57 + 1;
  • 57 ÷ 2 = 28 + 1;
  • 28 ÷ 2 = 14 + 0;
  • 14 ÷ 2 = 7 + 0;
  • 7 ÷ 2 = 3 + 1;
  • 3 ÷ 2 = 1 + 1;
  • 1 ÷ 2 = 0 + 1;

7. Construct the base 2 representation of the adjusted exponent.

Take all the remainders starting from the bottom of the list constructed above:

Exponent (adjusted) =


230(10) =


1110 0110(2)


8. Normalize the mantissa.

a) Remove the leading (the leftmost) bit, since it's allways 1, and the decimal point, if the case.

b) Adjust its length to 23 bits, by removing the excess bits, from the right (if any of the excess bits is set on 1, we are losing precision...).

Mantissa (normalized) =


1. 000 1100 0011 1101 1110 1111 1011 0001 1110 1101 1011 1001 1000 0100 1001 1001 0001 1100 1011 0100 1100 1101 0111 1111 1111 1111 =


000 1100 0011 1101 1110 1111


9. The three elements that make up the number's 32 bit single precision IEEE 754 binary floating point representation:

Sign (1 bit) =
0 (a positive number)


Exponent (8 bits) =
1110 0110


Mantissa (23 bits) =
000 1100 0011 1101 1110 1111


Conclusion:

Number 11 111 111 111 111 110 999 999 999 999 999 converted from decimal system (base 10)
to
32 bit single precision IEEE 754 binary floating point:
0 - 1110 0110 - 000 1100 0011 1101 1110 1111

(32 bits IEEE 754)
  • Sign (1 bit):

    • 0

      31
  • Exponent (8 bits):

    • 1

      30
    • 1

      29
    • 1

      28
    • 0

      27
    • 0

      26
    • 1

      25
    • 1

      24
    • 0

      23
  • Mantissa (23 bits):

    • 0

      22
    • 0

      21
    • 0

      20
    • 1

      19
    • 1

      18
    • 0

      17
    • 0

      16
    • 0

      15
    • 0

      14
    • 1

      13
    • 1

      12
    • 1

      11
    • 1

      10
    • 0

      9
    • 1

      8
    • 1

      7
    • 1

      6
    • 1

      5
    • 0

      4
    • 1

      3
    • 1

      2
    • 1

      1
    • 1

      0

More operations of this kind:

11 111 111 111 111 110 999 999 999 999 998 = ? ... 11 111 111 111 111 111 000 000 000 000 000 = ?


Convert to 32 bit single precision IEEE 754 binary floating point standard

A number in 32 bit single precision IEEE 754 binary floating point standard representation requires three building elements: sign (it takes 1 bit and it's either 0 for positive or 1 for negative numbers), exponent (8 bits) and mantissa (23 bits)

Latest decimal numbers converted from base ten to 32 bit single precision IEEE 754 floating point binary standard representation

How to convert decimal numbers from base ten to 32 bit single precision IEEE 754 binary floating point standard

Follow the steps below to convert a base 10 decimal number to 32 bit single precision IEEE 754 binary floating point:

  • 1. If the number to be converted is negative, start with its the positive version.
  • 2. First convert the integer part. Divide repeatedly by 2 the base ten positive representation of the integer number that is to be converted to binary, until we get a quotient that is equal to zero, keeping track of each remainder.
  • 3. Construct the base 2 representation of the positive integer part of the number, by taking all the remainders of the previous dividing operations, starting from the bottom of the list constructed above. Thus, the last remainder of the divisions becomes the first symbol (the leftmost) of the base two number, while the first remainder becomes the last symbol (the rightmost).
  • 4. Then convert the fractional part. Multiply the number repeatedly by 2, until we get a fractional part that is equal to zero, keeping track of each integer part of the results.
  • 5. Construct the base 2 representation of the fractional part of the number by taking all the integer parts of the previous multiplying operations, starting from the top of the constructed list above (they should appear in the binary representation, from left to right, in the order they have been calculated).
  • 6. Normalize the binary representation of the number, by shifting the decimal point (or if you prefer, the decimal mark) "n" positions either to the left or to the right, so that only one non zero digit remains to the left of the decimal point.
  • 7. Adjust the exponent in 8 bit excess/bias notation and then convert it from decimal (base 10) to 8 bit binary, by using the same technique of repeatedly dividing by 2, as shown above:
    Exponent (adjusted) = Exponent (unadjusted) + 2(8-1) - 1
  • 8. Normalize mantissa, remove the leading (leftmost) bit, since it's allways '1' (and the decimal sign if the case) and adjust its length to 23 bits, either by removing the excess bits from the right (losing precision...) or by adding extra '0' bits to the right.
  • 9. Sign (it takes 1 bit) is either 1 for a negative or 0 for a positive number.

Example: convert the negative number -25.347 from decimal system (base ten) to 32 bit single precision IEEE 754 binary floating point:

  • 1. Start with the positive version of the number:

    |-25.347| = 25.347

  • 2. First convert the integer part, 25. Divide it repeatedly by 2, keeping track of each remainder, until we get a quotient that is equal to zero:
    • division = quotient + remainder;
    • 25 ÷ 2 = 12 + 1;
    • 12 ÷ 2 = 6 + 0;
    • 6 ÷ 2 = 3 + 0;
    • 3 ÷ 2 = 1 + 1;
    • 1 ÷ 2 = 0 + 1;
    • We have encountered a quotient that is ZERO => FULL STOP
  • 3. Construct the base 2 representation of the integer part of the number by taking all the remainders of the previous dividing operations, starting from the bottom of the list constructed above:

    25(10) = 1 1001(2)

  • 4. Then convert the fractional part, 0.347. Multiply repeatedly by 2, keeping track of each integer part of the results, until we get a fractional part that is equal to zero:
    • #) multiplying = integer + fractional part;
    • 1) 0.347 × 2 = 0 + 0.694;
    • 2) 0.694 × 2 = 1 + 0.388;
    • 3) 0.388 × 2 = 0 + 0.776;
    • 4) 0.776 × 2 = 1 + 0.552;
    • 5) 0.552 × 2 = 1 + 0.104;
    • 6) 0.104 × 2 = 0 + 0.208;
    • 7) 0.208 × 2 = 0 + 0.416;
    • 8) 0.416 × 2 = 0 + 0.832;
    • 9) 0.832 × 2 = 1 + 0.664;
    • 10) 0.664 × 2 = 1 + 0.328;
    • 11) 0.328 × 2 = 0 + 0.656;
    • 12) 0.656 × 2 = 1 + 0.312;
    • 13) 0.312 × 2 = 0 + 0.624;
    • 14) 0.624 × 2 = 1 + 0.248;
    • 15) 0.248 × 2 = 0 + 0.496;
    • 16) 0.496 × 2 = 0 + 0.992;
    • 17) 0.992 × 2 = 1 + 0.984;
    • 18) 0.984 × 2 = 1 + 0.968;
    • 19) 0.968 × 2 = 1 + 0.936;
    • 20) 0.936 × 2 = 1 + 0.872;
    • 21) 0.872 × 2 = 1 + 0.744;
    • 22) 0.744 × 2 = 1 + 0.488;
    • 23) 0.488 × 2 = 0 + 0.976;
    • 24) 0.976 × 2 = 1 + 0.952;
    • We didn't get any fractional part that was equal to zero. But we had enough iterations (over Mantissa limit = 23) and at least one integer part that was different from zero => FULL STOP (losing precision...).
  • 5. Construct the base 2 representation of the fractional part of the number, by taking all the integer parts of the previous multiplying operations, starting from the top of the constructed list above:

    0.347(10) = 0.0101 1000 1101 0100 1111 1101(2)

  • 6. Summarizing - the positive number before normalization:

    25.347(10) = 1 1001.0101 1000 1101 0100 1111 1101(2)

  • 7. Normalize the binary representation of the number, shifting the decimal point 4 positions to the left so that only one non-zero digit stays to the left of the decimal point:

    25.347(10) =
    1 1001.0101 1000 1101 0100 1111 1101(2) =
    1 1001.0101 1000 1101 0100 1111 1101(2) × 20 =
    1.1001 0101 1000 1101 0100 1111 1101(2) × 24

  • 8. Up to this moment, there are the following elements that would feed into the 32 bit single precision IEEE 754 binary floating point:

    Sign: 1 (a negative number)

    Exponent (unadjusted): 4

    Mantissa (not-normalized): 1.1001 0101 1000 1101 0100 1111 1101

  • 9. Adjust the exponent in 8 bit excess/bias notation and then convert it from decimal (base 10) to 8 bit binary (base 2), by using the same technique of repeatedly dividing it by 2, as already demonstrated above:

    Exponent (adjusted) = Exponent (unadjusted) + 2(8-1) - 1 = (4 + 127)(10) = 131(10) =
    1000 0011(2)

  • 10. Normalize the mantissa, remove the leading (leftmost) bit, since it's allways '1' (and the decimal point) and adjust its length to 23 bits, by removing the excess bits from the right (losing precision...):

    Mantissa (not-normalized): 1.1001 0101 1000 1101 0100 1111 1101

    Mantissa (normalized): 100 1010 1100 0110 1010 0111

  • Conclusion:

    Sign (1 bit) = 1 (a negative number)

    Exponent (8 bits) = 1000 0011

    Mantissa (23 bits) = 100 1010 1100 0110 1010 0111

  • Number -25.347, converted from the decimal system (base 10) to 32 bit single precision IEEE 754 binary floating point =


    1 - 1000 0011 - 100 1010 1100 0110 1010 0111