1 945 897 979 494 546 466 464 857 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 1 945 897 979 494 546 466 464 857(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 945 897 979 494 546 466 464 857(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 945 897 979 494 546 466 464 857 ÷ 2 = 972 948 989 747 273 233 232 428 + 1;
  • 972 948 989 747 273 233 232 428 ÷ 2 = 486 474 494 873 636 616 616 214 + 0;
  • 486 474 494 873 636 616 616 214 ÷ 2 = 243 237 247 436 818 308 308 107 + 0;
  • 243 237 247 436 818 308 308 107 ÷ 2 = 121 618 623 718 409 154 154 053 + 1;
  • 121 618 623 718 409 154 154 053 ÷ 2 = 60 809 311 859 204 577 077 026 + 1;
  • 60 809 311 859 204 577 077 026 ÷ 2 = 30 404 655 929 602 288 538 513 + 0;
  • 30 404 655 929 602 288 538 513 ÷ 2 = 15 202 327 964 801 144 269 256 + 1;
  • 15 202 327 964 801 144 269 256 ÷ 2 = 7 601 163 982 400 572 134 628 + 0;
  • 7 601 163 982 400 572 134 628 ÷ 2 = 3 800 581 991 200 286 067 314 + 0;
  • 3 800 581 991 200 286 067 314 ÷ 2 = 1 900 290 995 600 143 033 657 + 0;
  • 1 900 290 995 600 143 033 657 ÷ 2 = 950 145 497 800 071 516 828 + 1;
  • 950 145 497 800 071 516 828 ÷ 2 = 475 072 748 900 035 758 414 + 0;
  • 475 072 748 900 035 758 414 ÷ 2 = 237 536 374 450 017 879 207 + 0;
  • 237 536 374 450 017 879 207 ÷ 2 = 118 768 187 225 008 939 603 + 1;
  • 118 768 187 225 008 939 603 ÷ 2 = 59 384 093 612 504 469 801 + 1;
  • 59 384 093 612 504 469 801 ÷ 2 = 29 692 046 806 252 234 900 + 1;
  • 29 692 046 806 252 234 900 ÷ 2 = 14 846 023 403 126 117 450 + 0;
  • 14 846 023 403 126 117 450 ÷ 2 = 7 423 011 701 563 058 725 + 0;
  • 7 423 011 701 563 058 725 ÷ 2 = 3 711 505 850 781 529 362 + 1;
  • 3 711 505 850 781 529 362 ÷ 2 = 1 855 752 925 390 764 681 + 0;
  • 1 855 752 925 390 764 681 ÷ 2 = 927 876 462 695 382 340 + 1;
  • 927 876 462 695 382 340 ÷ 2 = 463 938 231 347 691 170 + 0;
  • 463 938 231 347 691 170 ÷ 2 = 231 969 115 673 845 585 + 0;
  • 231 969 115 673 845 585 ÷ 2 = 115 984 557 836 922 792 + 1;
  • 115 984 557 836 922 792 ÷ 2 = 57 992 278 918 461 396 + 0;
  • 57 992 278 918 461 396 ÷ 2 = 28 996 139 459 230 698 + 0;
  • 28 996 139 459 230 698 ÷ 2 = 14 498 069 729 615 349 + 0;
  • 14 498 069 729 615 349 ÷ 2 = 7 249 034 864 807 674 + 1;
  • 7 249 034 864 807 674 ÷ 2 = 3 624 517 432 403 837 + 0;
  • 3 624 517 432 403 837 ÷ 2 = 1 812 258 716 201 918 + 1;
  • 1 812 258 716 201 918 ÷ 2 = 906 129 358 100 959 + 0;
  • 906 129 358 100 959 ÷ 2 = 453 064 679 050 479 + 1;
  • 453 064 679 050 479 ÷ 2 = 226 532 339 525 239 + 1;
  • 226 532 339 525 239 ÷ 2 = 113 266 169 762 619 + 1;
  • 113 266 169 762 619 ÷ 2 = 56 633 084 881 309 + 1;
  • 56 633 084 881 309 ÷ 2 = 28 316 542 440 654 + 1;
  • 28 316 542 440 654 ÷ 2 = 14 158 271 220 327 + 0;
  • 14 158 271 220 327 ÷ 2 = 7 079 135 610 163 + 1;
  • 7 079 135 610 163 ÷ 2 = 3 539 567 805 081 + 1;
  • 3 539 567 805 081 ÷ 2 = 1 769 783 902 540 + 1;
  • 1 769 783 902 540 ÷ 2 = 884 891 951 270 + 0;
  • 884 891 951 270 ÷ 2 = 442 445 975 635 + 0;
  • 442 445 975 635 ÷ 2 = 221 222 987 817 + 1;
  • 221 222 987 817 ÷ 2 = 110 611 493 908 + 1;
  • 110 611 493 908 ÷ 2 = 55 305 746 954 + 0;
  • 55 305 746 954 ÷ 2 = 27 652 873 477 + 0;
  • 27 652 873 477 ÷ 2 = 13 826 436 738 + 1;
  • 13 826 436 738 ÷ 2 = 6 913 218 369 + 0;
  • 6 913 218 369 ÷ 2 = 3 456 609 184 + 1;
  • 3 456 609 184 ÷ 2 = 1 728 304 592 + 0;
  • 1 728 304 592 ÷ 2 = 864 152 296 + 0;
  • 864 152 296 ÷ 2 = 432 076 148 + 0;
  • 432 076 148 ÷ 2 = 216 038 074 + 0;
  • 216 038 074 ÷ 2 = 108 019 037 + 0;
  • 108 019 037 ÷ 2 = 54 009 518 + 1;
  • 54 009 518 ÷ 2 = 27 004 759 + 0;
  • 27 004 759 ÷ 2 = 13 502 379 + 1;
  • 13 502 379 ÷ 2 = 6 751 189 + 1;
  • 6 751 189 ÷ 2 = 3 375 594 + 1;
  • 3 375 594 ÷ 2 = 1 687 797 + 0;
  • 1 687 797 ÷ 2 = 843 898 + 1;
  • 843 898 ÷ 2 = 421 949 + 0;
  • 421 949 ÷ 2 = 210 974 + 1;
  • 210 974 ÷ 2 = 105 487 + 0;
  • 105 487 ÷ 2 = 52 743 + 1;
  • 52 743 ÷ 2 = 26 371 + 1;
  • 26 371 ÷ 2 = 13 185 + 1;
  • 13 185 ÷ 2 = 6 592 + 1;
  • 6 592 ÷ 2 = 3 296 + 0;
  • 3 296 ÷ 2 = 1 648 + 0;
  • 1 648 ÷ 2 = 824 + 0;
  • 824 ÷ 2 = 412 + 0;
  • 412 ÷ 2 = 206 + 0;
  • 206 ÷ 2 = 103 + 0;
  • 103 ÷ 2 = 51 + 1;
  • 51 ÷ 2 = 25 + 1;
  • 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 945 897 979 494 546 466 464 857(10) =


1 1001 1100 0000 1111 0101 0111 0100 0001 0100 1100 1110 1111 1010 1000 1001 0100 1110 0100 0101 1001(2)


3. Normalize the binary representation of the number.

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


1 945 897 979 494 546 466 464 857(10) =


1 1001 1100 0000 1111 0101 0111 0100 0001 0100 1100 1110 1111 1010 1000 1001 0100 1110 0100 0101 1001(2) =


1 1001 1100 0000 1111 0101 0111 0100 0001 0100 1100 1110 1111 1010 1000 1001 0100 1110 0100 0101 1001(2) × 20 =


1.1001 1100 0000 1111 0101 0111 0100 0001 0100 1100 1110 1111 1010 1000 1001 0100 1110 0100 0101 1001(2) × 280


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


Mantissa (not normalized):
1.1001 1100 0000 1111 0101 0111 0100 0001 0100 1100 1110 1111 1010 1000 1001 0100 1110 0100 0101 1001


5. Adjust the exponent.

Use the 8 bit excess/bias notation:


Exponent (adjusted) =


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


80 + 2(8-1) - 1 =


(80 + 127)(10) =


207(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;
  • 207 ÷ 2 = 103 + 1;
  • 103 ÷ 2 = 51 + 1;
  • 51 ÷ 2 = 25 + 1;
  • 25 ÷ 2 = 12 + 1;
  • 12 ÷ 2 = 6 + 0;
  • 6 ÷ 2 = 3 + 0;
  • 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) =


207(10) =


1100 1111(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 1110 0000 0111 1010 1011 1 0100 0001 0100 1100 1110 1111 1010 1000 1001 0100 1110 0100 0101 1001 =


100 1110 0000 0111 1010 1011


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) =
1100 1111


Mantissa (23 bits) =
100 1110 0000 0111 1010 1011


Decimal number 1 945 897 979 494 546 466 464 857 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1100 1111 - 100 1110 0000 0111 1010 1011

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