10 111 111 111 010 011 001 100 110 011 467 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 10 111 111 111 010 011 001 100 110 011 467(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 111 010 011 001 100 110 011 467(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 111 010 011 001 100 110 011 467 ÷ 2 = 5 055 555 555 505 005 500 550 055 005 733 + 1;
  • 5 055 555 555 505 005 500 550 055 005 733 ÷ 2 = 2 527 777 777 752 502 750 275 027 502 866 + 1;
  • 2 527 777 777 752 502 750 275 027 502 866 ÷ 2 = 1 263 888 888 876 251 375 137 513 751 433 + 0;
  • 1 263 888 888 876 251 375 137 513 751 433 ÷ 2 = 631 944 444 438 125 687 568 756 875 716 + 1;
  • 631 944 444 438 125 687 568 756 875 716 ÷ 2 = 315 972 222 219 062 843 784 378 437 858 + 0;
  • 315 972 222 219 062 843 784 378 437 858 ÷ 2 = 157 986 111 109 531 421 892 189 218 929 + 0;
  • 157 986 111 109 531 421 892 189 218 929 ÷ 2 = 78 993 055 554 765 710 946 094 609 464 + 1;
  • 78 993 055 554 765 710 946 094 609 464 ÷ 2 = 39 496 527 777 382 855 473 047 304 732 + 0;
  • 39 496 527 777 382 855 473 047 304 732 ÷ 2 = 19 748 263 888 691 427 736 523 652 366 + 0;
  • 19 748 263 888 691 427 736 523 652 366 ÷ 2 = 9 874 131 944 345 713 868 261 826 183 + 0;
  • 9 874 131 944 345 713 868 261 826 183 ÷ 2 = 4 937 065 972 172 856 934 130 913 091 + 1;
  • 4 937 065 972 172 856 934 130 913 091 ÷ 2 = 2 468 532 986 086 428 467 065 456 545 + 1;
  • 2 468 532 986 086 428 467 065 456 545 ÷ 2 = 1 234 266 493 043 214 233 532 728 272 + 1;
  • 1 234 266 493 043 214 233 532 728 272 ÷ 2 = 617 133 246 521 607 116 766 364 136 + 0;
  • 617 133 246 521 607 116 766 364 136 ÷ 2 = 308 566 623 260 803 558 383 182 068 + 0;
  • 308 566 623 260 803 558 383 182 068 ÷ 2 = 154 283 311 630 401 779 191 591 034 + 0;
  • 154 283 311 630 401 779 191 591 034 ÷ 2 = 77 141 655 815 200 889 595 795 517 + 0;
  • 77 141 655 815 200 889 595 795 517 ÷ 2 = 38 570 827 907 600 444 797 897 758 + 1;
  • 38 570 827 907 600 444 797 897 758 ÷ 2 = 19 285 413 953 800 222 398 948 879 + 0;
  • 19 285 413 953 800 222 398 948 879 ÷ 2 = 9 642 706 976 900 111 199 474 439 + 1;
  • 9 642 706 976 900 111 199 474 439 ÷ 2 = 4 821 353 488 450 055 599 737 219 + 1;
  • 4 821 353 488 450 055 599 737 219 ÷ 2 = 2 410 676 744 225 027 799 868 609 + 1;
  • 2 410 676 744 225 027 799 868 609 ÷ 2 = 1 205 338 372 112 513 899 934 304 + 1;
  • 1 205 338 372 112 513 899 934 304 ÷ 2 = 602 669 186 056 256 949 967 152 + 0;
  • 602 669 186 056 256 949 967 152 ÷ 2 = 301 334 593 028 128 474 983 576 + 0;
  • 301 334 593 028 128 474 983 576 ÷ 2 = 150 667 296 514 064 237 491 788 + 0;
  • 150 667 296 514 064 237 491 788 ÷ 2 = 75 333 648 257 032 118 745 894 + 0;
  • 75 333 648 257 032 118 745 894 ÷ 2 = 37 666 824 128 516 059 372 947 + 0;
  • 37 666 824 128 516 059 372 947 ÷ 2 = 18 833 412 064 258 029 686 473 + 1;
  • 18 833 412 064 258 029 686 473 ÷ 2 = 9 416 706 032 129 014 843 236 + 1;
  • 9 416 706 032 129 014 843 236 ÷ 2 = 4 708 353 016 064 507 421 618 + 0;
  • 4 708 353 016 064 507 421 618 ÷ 2 = 2 354 176 508 032 253 710 809 + 0;
  • 2 354 176 508 032 253 710 809 ÷ 2 = 1 177 088 254 016 126 855 404 + 1;
  • 1 177 088 254 016 126 855 404 ÷ 2 = 588 544 127 008 063 427 702 + 0;
  • 588 544 127 008 063 427 702 ÷ 2 = 294 272 063 504 031 713 851 + 0;
  • 294 272 063 504 031 713 851 ÷ 2 = 147 136 031 752 015 856 925 + 1;
  • 147 136 031 752 015 856 925 ÷ 2 = 73 568 015 876 007 928 462 + 1;
  • 73 568 015 876 007 928 462 ÷ 2 = 36 784 007 938 003 964 231 + 0;
  • 36 784 007 938 003 964 231 ÷ 2 = 18 392 003 969 001 982 115 + 1;
  • 18 392 003 969 001 982 115 ÷ 2 = 9 196 001 984 500 991 057 + 1;
  • 9 196 001 984 500 991 057 ÷ 2 = 4 598 000 992 250 495 528 + 1;
  • 4 598 000 992 250 495 528 ÷ 2 = 2 299 000 496 125 247 764 + 0;
  • 2 299 000 496 125 247 764 ÷ 2 = 1 149 500 248 062 623 882 + 0;
  • 1 149 500 248 062 623 882 ÷ 2 = 574 750 124 031 311 941 + 0;
  • 574 750 124 031 311 941 ÷ 2 = 287 375 062 015 655 970 + 1;
  • 287 375 062 015 655 970 ÷ 2 = 143 687 531 007 827 985 + 0;
  • 143 687 531 007 827 985 ÷ 2 = 71 843 765 503 913 992 + 1;
  • 71 843 765 503 913 992 ÷ 2 = 35 921 882 751 956 996 + 0;
  • 35 921 882 751 956 996 ÷ 2 = 17 960 941 375 978 498 + 0;
  • 17 960 941 375 978 498 ÷ 2 = 8 980 470 687 989 249 + 0;
  • 8 980 470 687 989 249 ÷ 2 = 4 490 235 343 994 624 + 1;
  • 4 490 235 343 994 624 ÷ 2 = 2 245 117 671 997 312 + 0;
  • 2 245 117 671 997 312 ÷ 2 = 1 122 558 835 998 656 + 0;
  • 1 122 558 835 998 656 ÷ 2 = 561 279 417 999 328 + 0;
  • 561 279 417 999 328 ÷ 2 = 280 639 708 999 664 + 0;
  • 280 639 708 999 664 ÷ 2 = 140 319 854 499 832 + 0;
  • 140 319 854 499 832 ÷ 2 = 70 159 927 249 916 + 0;
  • 70 159 927 249 916 ÷ 2 = 35 079 963 624 958 + 0;
  • 35 079 963 624 958 ÷ 2 = 17 539 981 812 479 + 0;
  • 17 539 981 812 479 ÷ 2 = 8 769 990 906 239 + 1;
  • 8 769 990 906 239 ÷ 2 = 4 384 995 453 119 + 1;
  • 4 384 995 453 119 ÷ 2 = 2 192 497 726 559 + 1;
  • 2 192 497 726 559 ÷ 2 = 1 096 248 863 279 + 1;
  • 1 096 248 863 279 ÷ 2 = 548 124 431 639 + 1;
  • 548 124 431 639 ÷ 2 = 274 062 215 819 + 1;
  • 274 062 215 819 ÷ 2 = 137 031 107 909 + 1;
  • 137 031 107 909 ÷ 2 = 68 515 553 954 + 1;
  • 68 515 553 954 ÷ 2 = 34 257 776 977 + 0;
  • 34 257 776 977 ÷ 2 = 17 128 888 488 + 1;
  • 17 128 888 488 ÷ 2 = 8 564 444 244 + 0;
  • 8 564 444 244 ÷ 2 = 4 282 222 122 + 0;
  • 4 282 222 122 ÷ 2 = 2 141 111 061 + 0;
  • 2 141 111 061 ÷ 2 = 1 070 555 530 + 1;
  • 1 070 555 530 ÷ 2 = 535 277 765 + 0;
  • 535 277 765 ÷ 2 = 267 638 882 + 1;
  • 267 638 882 ÷ 2 = 133 819 441 + 0;
  • 133 819 441 ÷ 2 = 66 909 720 + 1;
  • 66 909 720 ÷ 2 = 33 454 860 + 0;
  • 33 454 860 ÷ 2 = 16 727 430 + 0;
  • 16 727 430 ÷ 2 = 8 363 715 + 0;
  • 8 363 715 ÷ 2 = 4 181 857 + 1;
  • 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 111 010 011 001 100 110 011 467(10) =


111 1111 1001 1110 1100 0011 0001 0101 0001 0111 1111 1000 0000 0100 0101 0001 1101 1001 0011 0000 0111 1010 0001 1100 0100 1011(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 111 010 011 001 100 110 011 467(10) =


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


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


1.1111 1110 0111 1011 0000 1100 0101 0100 0101 1111 1110 0000 0001 0001 0100 0111 0110 0100 1100 0001 1110 1000 0111 0001 0010 11(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 1100 0101 0100 0101 1111 1110 0000 0001 0001 0100 0111 0110 0100 1100 0001 1110 1000 0111 0001 0010 11


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 0110 001 0101 0001 0111 1111 1000 0000 0100 0101 0001 1101 1001 0011 0000 0111 1010 0001 1100 0100 1011 =


111 1111 0011 1101 1000 0110


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 0110


Decimal number 10 111 111 111 010 011 001 100 110 011 467 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1110 0101 - 111 1111 0011 1101 1000 0110


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