1 000 101 101 110 100 010 010 100 010 288 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 1 000 101 101 110 100 010 010 100 010 288(10) to 32 bit single precision IEEE 754 binary floating point representation standard (1 bit for sign, 8 bits for exponent, 23 bits for mantissa)

What are the steps to convert decimal number
1 000 101 101 110 100 010 010 100 010 288(10) to 32 bit single precision IEEE 754 binary floating point representation (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;
  • 1 000 101 101 110 100 010 010 100 010 288 ÷ 2 = 500 050 550 555 050 005 005 050 005 144 + 0;
  • 500 050 550 555 050 005 005 050 005 144 ÷ 2 = 250 025 275 277 525 002 502 525 002 572 + 0;
  • 250 025 275 277 525 002 502 525 002 572 ÷ 2 = 125 012 637 638 762 501 251 262 501 286 + 0;
  • 125 012 637 638 762 501 251 262 501 286 ÷ 2 = 62 506 318 819 381 250 625 631 250 643 + 0;
  • 62 506 318 819 381 250 625 631 250 643 ÷ 2 = 31 253 159 409 690 625 312 815 625 321 + 1;
  • 31 253 159 409 690 625 312 815 625 321 ÷ 2 = 15 626 579 704 845 312 656 407 812 660 + 1;
  • 15 626 579 704 845 312 656 407 812 660 ÷ 2 = 7 813 289 852 422 656 328 203 906 330 + 0;
  • 7 813 289 852 422 656 328 203 906 330 ÷ 2 = 3 906 644 926 211 328 164 101 953 165 + 0;
  • 3 906 644 926 211 328 164 101 953 165 ÷ 2 = 1 953 322 463 105 664 082 050 976 582 + 1;
  • 1 953 322 463 105 664 082 050 976 582 ÷ 2 = 976 661 231 552 832 041 025 488 291 + 0;
  • 976 661 231 552 832 041 025 488 291 ÷ 2 = 488 330 615 776 416 020 512 744 145 + 1;
  • 488 330 615 776 416 020 512 744 145 ÷ 2 = 244 165 307 888 208 010 256 372 072 + 1;
  • 244 165 307 888 208 010 256 372 072 ÷ 2 = 122 082 653 944 104 005 128 186 036 + 0;
  • 122 082 653 944 104 005 128 186 036 ÷ 2 = 61 041 326 972 052 002 564 093 018 + 0;
  • 61 041 326 972 052 002 564 093 018 ÷ 2 = 30 520 663 486 026 001 282 046 509 + 0;
  • 30 520 663 486 026 001 282 046 509 ÷ 2 = 15 260 331 743 013 000 641 023 254 + 1;
  • 15 260 331 743 013 000 641 023 254 ÷ 2 = 7 630 165 871 506 500 320 511 627 + 0;
  • 7 630 165 871 506 500 320 511 627 ÷ 2 = 3 815 082 935 753 250 160 255 813 + 1;
  • 3 815 082 935 753 250 160 255 813 ÷ 2 = 1 907 541 467 876 625 080 127 906 + 1;
  • 1 907 541 467 876 625 080 127 906 ÷ 2 = 953 770 733 938 312 540 063 953 + 0;
  • 953 770 733 938 312 540 063 953 ÷ 2 = 476 885 366 969 156 270 031 976 + 1;
  • 476 885 366 969 156 270 031 976 ÷ 2 = 238 442 683 484 578 135 015 988 + 0;
  • 238 442 683 484 578 135 015 988 ÷ 2 = 119 221 341 742 289 067 507 994 + 0;
  • 119 221 341 742 289 067 507 994 ÷ 2 = 59 610 670 871 144 533 753 997 + 0;
  • 59 610 670 871 144 533 753 997 ÷ 2 = 29 805 335 435 572 266 876 998 + 1;
  • 29 805 335 435 572 266 876 998 ÷ 2 = 14 902 667 717 786 133 438 499 + 0;
  • 14 902 667 717 786 133 438 499 ÷ 2 = 7 451 333 858 893 066 719 249 + 1;
  • 7 451 333 858 893 066 719 249 ÷ 2 = 3 725 666 929 446 533 359 624 + 1;
  • 3 725 666 929 446 533 359 624 ÷ 2 = 1 862 833 464 723 266 679 812 + 0;
  • 1 862 833 464 723 266 679 812 ÷ 2 = 931 416 732 361 633 339 906 + 0;
  • 931 416 732 361 633 339 906 ÷ 2 = 465 708 366 180 816 669 953 + 0;
  • 465 708 366 180 816 669 953 ÷ 2 = 232 854 183 090 408 334 976 + 1;
  • 232 854 183 090 408 334 976 ÷ 2 = 116 427 091 545 204 167 488 + 0;
  • 116 427 091 545 204 167 488 ÷ 2 = 58 213 545 772 602 083 744 + 0;
  • 58 213 545 772 602 083 744 ÷ 2 = 29 106 772 886 301 041 872 + 0;
  • 29 106 772 886 301 041 872 ÷ 2 = 14 553 386 443 150 520 936 + 0;
  • 14 553 386 443 150 520 936 ÷ 2 = 7 276 693 221 575 260 468 + 0;
  • 7 276 693 221 575 260 468 ÷ 2 = 3 638 346 610 787 630 234 + 0;
  • 3 638 346 610 787 630 234 ÷ 2 = 1 819 173 305 393 815 117 + 0;
  • 1 819 173 305 393 815 117 ÷ 2 = 909 586 652 696 907 558 + 1;
  • 909 586 652 696 907 558 ÷ 2 = 454 793 326 348 453 779 + 0;
  • 454 793 326 348 453 779 ÷ 2 = 227 396 663 174 226 889 + 1;
  • 227 396 663 174 226 889 ÷ 2 = 113 698 331 587 113 444 + 1;
  • 113 698 331 587 113 444 ÷ 2 = 56 849 165 793 556 722 + 0;
  • 56 849 165 793 556 722 ÷ 2 = 28 424 582 896 778 361 + 0;
  • 28 424 582 896 778 361 ÷ 2 = 14 212 291 448 389 180 + 1;
  • 14 212 291 448 389 180 ÷ 2 = 7 106 145 724 194 590 + 0;
  • 7 106 145 724 194 590 ÷ 2 = 3 553 072 862 097 295 + 0;
  • 3 553 072 862 097 295 ÷ 2 = 1 776 536 431 048 647 + 1;
  • 1 776 536 431 048 647 ÷ 2 = 888 268 215 524 323 + 1;
  • 888 268 215 524 323 ÷ 2 = 444 134 107 762 161 + 1;
  • 444 134 107 762 161 ÷ 2 = 222 067 053 881 080 + 1;
  • 222 067 053 881 080 ÷ 2 = 111 033 526 940 540 + 0;
  • 111 033 526 940 540 ÷ 2 = 55 516 763 470 270 + 0;
  • 55 516 763 470 270 ÷ 2 = 27 758 381 735 135 + 0;
  • 27 758 381 735 135 ÷ 2 = 13 879 190 867 567 + 1;
  • 13 879 190 867 567 ÷ 2 = 6 939 595 433 783 + 1;
  • 6 939 595 433 783 ÷ 2 = 3 469 797 716 891 + 1;
  • 3 469 797 716 891 ÷ 2 = 1 734 898 858 445 + 1;
  • 1 734 898 858 445 ÷ 2 = 867 449 429 222 + 1;
  • 867 449 429 222 ÷ 2 = 433 724 714 611 + 0;
  • 433 724 714 611 ÷ 2 = 216 862 357 305 + 1;
  • 216 862 357 305 ÷ 2 = 108 431 178 652 + 1;
  • 108 431 178 652 ÷ 2 = 54 215 589 326 + 0;
  • 54 215 589 326 ÷ 2 = 27 107 794 663 + 0;
  • 27 107 794 663 ÷ 2 = 13 553 897 331 + 1;
  • 13 553 897 331 ÷ 2 = 6 776 948 665 + 1;
  • 6 776 948 665 ÷ 2 = 3 388 474 332 + 1;
  • 3 388 474 332 ÷ 2 = 1 694 237 166 + 0;
  • 1 694 237 166 ÷ 2 = 847 118 583 + 0;
  • 847 118 583 ÷ 2 = 423 559 291 + 1;
  • 423 559 291 ÷ 2 = 211 779 645 + 1;
  • 211 779 645 ÷ 2 = 105 889 822 + 1;
  • 105 889 822 ÷ 2 = 52 944 911 + 0;
  • 52 944 911 ÷ 2 = 26 472 455 + 1;
  • 26 472 455 ÷ 2 = 13 236 227 + 1;
  • 13 236 227 ÷ 2 = 6 618 113 + 1;
  • 6 618 113 ÷ 2 = 3 309 056 + 1;
  • 3 309 056 ÷ 2 = 1 654 528 + 0;
  • 1 654 528 ÷ 2 = 827 264 + 0;
  • 827 264 ÷ 2 = 413 632 + 0;
  • 413 632 ÷ 2 = 206 816 + 0;
  • 206 816 ÷ 2 = 103 408 + 0;
  • 103 408 ÷ 2 = 51 704 + 0;
  • 51 704 ÷ 2 = 25 852 + 0;
  • 25 852 ÷ 2 = 12 926 + 0;
  • 12 926 ÷ 2 = 6 463 + 0;
  • 6 463 ÷ 2 = 3 231 + 1;
  • 3 231 ÷ 2 = 1 615 + 1;
  • 1 615 ÷ 2 = 807 + 1;
  • 807 ÷ 2 = 403 + 1;
  • 403 ÷ 2 = 201 + 1;
  • 201 ÷ 2 = 100 + 1;
  • 100 ÷ 2 = 50 + 0;
  • 50 ÷ 2 = 25 + 0;
  • 25 ÷ 2 = 12 + 1;
  • 12 ÷ 2 = 6 + 0;
  • 6 ÷ 2 = 3 + 0;
  • 3 ÷ 2 = 1 + 1;
  • 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.

1 000 101 101 110 100 010 010 100 010 288(10) =


1100 1001 1111 1000 0000 0011 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 0000(2)


3. Normalize the binary representation of the number.

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


1 000 101 101 110 100 010 010 100 010 288(10) =


1100 1001 1111 1000 0000 0011 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 0000(2) =


1100 1001 1111 1000 0000 0011 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 0000(2) × 20 =


1.1001 0011 1111 0000 0000 0111 1011 1001 1100 1101 1111 0001 1110 0100 1101 0000 0001 0001 1010 0010 1101 0001 1010 0110 000(2) × 299


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): 99


Mantissa (not normalized):
1.1001 0011 1111 0000 0000 0111 1011 1001 1100 1101 1111 0001 1110 0100 1101 0000 0001 0001 1010 0010 1101 0001 1010 0110 000


5. Adjust the exponent.

Use the 8 bit excess/bias notation:


Exponent (adjusted) =


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


99 + 2(8-1) - 1 =


(99 + 127)(10) =


226(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;
  • 226 ÷ 2 = 113 + 0;
  • 113 ÷ 2 = 56 + 1;
  • 56 ÷ 2 = 28 + 0;
  • 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) =


226(10) =


1110 0010(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. 100 1001 1111 1000 0000 0011 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 0000 =


100 1001 1111 1000 0000 0011


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 0010


Mantissa (23 bits) =
100 1001 1111 1000 0000 0011


Decimal number 1 000 101 101 110 100 010 010 100 010 288 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1110 0010 - 100 1001 1111 1000 0000 0011

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