10 111 111 010 010 000 000 000 000 000 164 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 10 111 111 010 010 000 000 000 000 000 164(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
10 111 111 010 010 000 000 000 000 000 164(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;
  • 10 111 111 010 010 000 000 000 000 000 164 ÷ 2 = 5 055 555 505 005 000 000 000 000 000 082 + 0;
  • 5 055 555 505 005 000 000 000 000 000 082 ÷ 2 = 2 527 777 752 502 500 000 000 000 000 041 + 0;
  • 2 527 777 752 502 500 000 000 000 000 041 ÷ 2 = 1 263 888 876 251 250 000 000 000 000 020 + 1;
  • 1 263 888 876 251 250 000 000 000 000 020 ÷ 2 = 631 944 438 125 625 000 000 000 000 010 + 0;
  • 631 944 438 125 625 000 000 000 000 010 ÷ 2 = 315 972 219 062 812 500 000 000 000 005 + 0;
  • 315 972 219 062 812 500 000 000 000 005 ÷ 2 = 157 986 109 531 406 250 000 000 000 002 + 1;
  • 157 986 109 531 406 250 000 000 000 002 ÷ 2 = 78 993 054 765 703 125 000 000 000 001 + 0;
  • 78 993 054 765 703 125 000 000 000 001 ÷ 2 = 39 496 527 382 851 562 500 000 000 000 + 1;
  • 39 496 527 382 851 562 500 000 000 000 ÷ 2 = 19 748 263 691 425 781 250 000 000 000 + 0;
  • 19 748 263 691 425 781 250 000 000 000 ÷ 2 = 9 874 131 845 712 890 625 000 000 000 + 0;
  • 9 874 131 845 712 890 625 000 000 000 ÷ 2 = 4 937 065 922 856 445 312 500 000 000 + 0;
  • 4 937 065 922 856 445 312 500 000 000 ÷ 2 = 2 468 532 961 428 222 656 250 000 000 + 0;
  • 2 468 532 961 428 222 656 250 000 000 ÷ 2 = 1 234 266 480 714 111 328 125 000 000 + 0;
  • 1 234 266 480 714 111 328 125 000 000 ÷ 2 = 617 133 240 357 055 664 062 500 000 + 0;
  • 617 133 240 357 055 664 062 500 000 ÷ 2 = 308 566 620 178 527 832 031 250 000 + 0;
  • 308 566 620 178 527 832 031 250 000 ÷ 2 = 154 283 310 089 263 916 015 625 000 + 0;
  • 154 283 310 089 263 916 015 625 000 ÷ 2 = 77 141 655 044 631 958 007 812 500 + 0;
  • 77 141 655 044 631 958 007 812 500 ÷ 2 = 38 570 827 522 315 979 003 906 250 + 0;
  • 38 570 827 522 315 979 003 906 250 ÷ 2 = 19 285 413 761 157 989 501 953 125 + 0;
  • 19 285 413 761 157 989 501 953 125 ÷ 2 = 9 642 706 880 578 994 750 976 562 + 1;
  • 9 642 706 880 578 994 750 976 562 ÷ 2 = 4 821 353 440 289 497 375 488 281 + 0;
  • 4 821 353 440 289 497 375 488 281 ÷ 2 = 2 410 676 720 144 748 687 744 140 + 1;
  • 2 410 676 720 144 748 687 744 140 ÷ 2 = 1 205 338 360 072 374 343 872 070 + 0;
  • 1 205 338 360 072 374 343 872 070 ÷ 2 = 602 669 180 036 187 171 936 035 + 0;
  • 602 669 180 036 187 171 936 035 ÷ 2 = 301 334 590 018 093 585 968 017 + 1;
  • 301 334 590 018 093 585 968 017 ÷ 2 = 150 667 295 009 046 792 984 008 + 1;
  • 150 667 295 009 046 792 984 008 ÷ 2 = 75 333 647 504 523 396 492 004 + 0;
  • 75 333 647 504 523 396 492 004 ÷ 2 = 37 666 823 752 261 698 246 002 + 0;
  • 37 666 823 752 261 698 246 002 ÷ 2 = 18 833 411 876 130 849 123 001 + 0;
  • 18 833 411 876 130 849 123 001 ÷ 2 = 9 416 705 938 065 424 561 500 + 1;
  • 9 416 705 938 065 424 561 500 ÷ 2 = 4 708 352 969 032 712 280 750 + 0;
  • 4 708 352 969 032 712 280 750 ÷ 2 = 2 354 176 484 516 356 140 375 + 0;
  • 2 354 176 484 516 356 140 375 ÷ 2 = 1 177 088 242 258 178 070 187 + 1;
  • 1 177 088 242 258 178 070 187 ÷ 2 = 588 544 121 129 089 035 093 + 1;
  • 588 544 121 129 089 035 093 ÷ 2 = 294 272 060 564 544 517 546 + 1;
  • 294 272 060 564 544 517 546 ÷ 2 = 147 136 030 282 272 258 773 + 0;
  • 147 136 030 282 272 258 773 ÷ 2 = 73 568 015 141 136 129 386 + 1;
  • 73 568 015 141 136 129 386 ÷ 2 = 36 784 007 570 568 064 693 + 0;
  • 36 784 007 570 568 064 693 ÷ 2 = 18 392 003 785 284 032 346 + 1;
  • 18 392 003 785 284 032 346 ÷ 2 = 9 196 001 892 642 016 173 + 0;
  • 9 196 001 892 642 016 173 ÷ 2 = 4 598 000 946 321 008 086 + 1;
  • 4 598 000 946 321 008 086 ÷ 2 = 2 299 000 473 160 504 043 + 0;
  • 2 299 000 473 160 504 043 ÷ 2 = 1 149 500 236 580 252 021 + 1;
  • 1 149 500 236 580 252 021 ÷ 2 = 574 750 118 290 126 010 + 1;
  • 574 750 118 290 126 010 ÷ 2 = 287 375 059 145 063 005 + 0;
  • 287 375 059 145 063 005 ÷ 2 = 143 687 529 572 531 502 + 1;
  • 143 687 529 572 531 502 ÷ 2 = 71 843 764 786 265 751 + 0;
  • 71 843 764 786 265 751 ÷ 2 = 35 921 882 393 132 875 + 1;
  • 35 921 882 393 132 875 ÷ 2 = 17 960 941 196 566 437 + 1;
  • 17 960 941 196 566 437 ÷ 2 = 8 980 470 598 283 218 + 1;
  • 8 980 470 598 283 218 ÷ 2 = 4 490 235 299 141 609 + 0;
  • 4 490 235 299 141 609 ÷ 2 = 2 245 117 649 570 804 + 1;
  • 2 245 117 649 570 804 ÷ 2 = 1 122 558 824 785 402 + 0;
  • 1 122 558 824 785 402 ÷ 2 = 561 279 412 392 701 + 0;
  • 561 279 412 392 701 ÷ 2 = 280 639 706 196 350 + 1;
  • 280 639 706 196 350 ÷ 2 = 140 319 853 098 175 + 0;
  • 140 319 853 098 175 ÷ 2 = 70 159 926 549 087 + 1;
  • 70 159 926 549 087 ÷ 2 = 35 079 963 274 543 + 1;
  • 35 079 963 274 543 ÷ 2 = 17 539 981 637 271 + 1;
  • 17 539 981 637 271 ÷ 2 = 8 769 990 818 635 + 1;
  • 8 769 990 818 635 ÷ 2 = 4 384 995 409 317 + 1;
  • 4 384 995 409 317 ÷ 2 = 2 192 497 704 658 + 1;
  • 2 192 497 704 658 ÷ 2 = 1 096 248 852 329 + 0;
  • 1 096 248 852 329 ÷ 2 = 548 124 426 164 + 1;
  • 548 124 426 164 ÷ 2 = 274 062 213 082 + 0;
  • 274 062 213 082 ÷ 2 = 137 031 106 541 + 0;
  • 137 031 106 541 ÷ 2 = 68 515 553 270 + 1;
  • 68 515 553 270 ÷ 2 = 34 257 776 635 + 0;
  • 34 257 776 635 ÷ 2 = 17 128 888 317 + 1;
  • 17 128 888 317 ÷ 2 = 8 564 444 158 + 1;
  • 8 564 444 158 ÷ 2 = 4 282 222 079 + 0;
  • 4 282 222 079 ÷ 2 = 2 141 111 039 + 1;
  • 2 141 111 039 ÷ 2 = 1 070 555 519 + 1;
  • 1 070 555 519 ÷ 2 = 535 277 759 + 1;
  • 535 277 759 ÷ 2 = 267 638 879 + 1;
  • 267 638 879 ÷ 2 = 133 819 439 + 1;
  • 133 819 439 ÷ 2 = 66 909 719 + 1;
  • 66 909 719 ÷ 2 = 33 454 859 + 1;
  • 33 454 859 ÷ 2 = 16 727 429 + 1;
  • 16 727 429 ÷ 2 = 8 363 714 + 1;
  • 8 363 714 ÷ 2 = 4 181 857 + 0;
  • 4 181 857 ÷ 2 = 2 090 928 + 1;
  • 2 090 928 ÷ 2 = 1 045 464 + 0;
  • 1 045 464 ÷ 2 = 522 732 + 0;
  • 522 732 ÷ 2 = 261 366 + 0;
  • 261 366 ÷ 2 = 130 683 + 0;
  • 130 683 ÷ 2 = 65 341 + 1;
  • 65 341 ÷ 2 = 32 670 + 1;
  • 32 670 ÷ 2 = 16 335 + 0;
  • 16 335 ÷ 2 = 8 167 + 1;
  • 8 167 ÷ 2 = 4 083 + 1;
  • 4 083 ÷ 2 = 2 041 + 1;
  • 2 041 ÷ 2 = 1 020 + 1;
  • 1 020 ÷ 2 = 510 + 0;
  • 510 ÷ 2 = 255 + 0;
  • 255 ÷ 2 = 127 + 1;
  • 127 ÷ 2 = 63 + 1;
  • 63 ÷ 2 = 31 + 1;
  • 31 ÷ 2 = 15 + 1;
  • 15 ÷ 2 = 7 + 1;
  • 7 ÷ 2 = 3 + 1;
  • 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.

10 111 111 010 010 000 000 000 000 000 164(10) =


111 1111 1001 1110 1100 0010 1111 1111 1011 0100 1011 1111 0100 1011 1010 1101 0101 0111 0010 0011 0010 1000 0000 0000 1010 0100(2)


3. Normalize the binary representation of the number.

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


10 111 111 010 010 000 000 000 000 000 164(10) =


111 1111 1001 1110 1100 0010 1111 1111 1011 0100 1011 1111 0100 1011 1010 1101 0101 0111 0010 0011 0010 1000 0000 0000 1010 0100(2) =


111 1111 1001 1110 1100 0010 1111 1111 1011 0100 1011 1111 0100 1011 1010 1101 0101 0111 0010 0011 0010 1000 0000 0000 1010 0100(2) × 20 =


1.1111 1110 0111 1011 0000 1011 1111 1110 1101 0010 1111 1101 0010 1110 1011 0101 0101 1100 1000 1100 1010 0000 0000 0010 1001 00(2) × 2102


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


Mantissa (not normalized):
1.1111 1110 0111 1011 0000 1011 1111 1110 1101 0010 1111 1101 0010 1110 1011 0101 0101 1100 1000 1100 1010 0000 0000 0010 1001 00


5. Adjust the exponent.

Use the 8 bit excess/bias notation:


Exponent (adjusted) =


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


102 + 2(8-1) - 1 =


(102 + 127)(10) =


229(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;
  • 229 ÷ 2 = 114 + 1;
  • 114 ÷ 2 = 57 + 0;
  • 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) =


229(10) =


1110 0101(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. 111 1111 0011 1101 1000 0101 111 1111 1011 0100 1011 1111 0100 1011 1010 1101 0101 0111 0010 0011 0010 1000 0000 0000 1010 0100 =


111 1111 0011 1101 1000 0101


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 0101


Mantissa (23 bits) =
111 1111 0011 1101 1000 0101


Decimal number 10 111 111 010 010 000 000 000 000 000 164 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1110 0101 - 111 1111 0011 1101 1000 0101


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