Care sunt pașii pentru a scrie
0 - 111 1110 0110 - 1001 1111 1100 1000 0000 0000 0000 0000 0000 0000 0000 0100 0111, binar pe 64 de biți, precizie dublă, în virgulă mobilă în standard IEEE 754 ca număr zecimal?
1. Identifică elementele ce alcătuiesc reprezentarea numărului binar:
Primul bit (cel mai din stânga) indică semnul,
1 = negativ, 0 = pozitiv.
0
Următorii 11 biți conțin exponentul:
111 1110 0110
Ultimii 52 de biți conțin mantisa:
1001 1111 1100 1000 0000 0000 0000 0000 0000 0000 0000 0100 0111
2. Convertește exponentul din binar (din baza 2) în zecimal (în baza 10).
Exponentul e întotdeauna un număr întreg pozitiv.
111 1110 0110(2) =
1 × 210 + 1 × 29 + 1 × 28 + 1 × 27 + 1 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 =
1.024 + 512 + 256 + 128 + 64 + 32 + 0 + 0 + 4 + 2 + 0 =
1.024 + 512 + 256 + 128 + 64 + 32 + 4 + 2 =
2.022(10)
3. Ajustează exponentul.
Scade excesul de biți: 2(11 - 1) - 1 = 1023,
datorat reprezentării deplasate pe 11 biți.
Exponentul, ajustat = 2.022 - 1023 = 999
4. Convertește mantisa din binar (din baza 2) în zecimal (în baza 10).
Mantisa reprezintă partea fracționară a numărului (ceea ce urmează după partea întreagă a numărului, separată de aceasta prin virgulă).
1001 1111 1100 1000 0000 0000 0000 0000 0000 0000 0000 0100 0111(2) =
1 × 2-1 + 0 × 2-2 + 0 × 2-3 + 1 × 2-4 + 1 × 2-5 + 1 × 2-6 + 1 × 2-7 + 1 × 2-8 + 1 × 2-9 + 1 × 2-10 + 0 × 2-11 + 0 × 2-12 + 1 × 2-13 + 0 × 2-14 + 0 × 2-15 + 0 × 2-16 + 0 × 2-17 + 0 × 2-18 + 0 × 2-19 + 0 × 2-20 + 0 × 2-21 + 0 × 2-22 + 0 × 2-23 + 0 × 2-24 + 0 × 2-25 + 0 × 2-26 + 0 × 2-27 + 0 × 2-28 + 0 × 2-29 + 0 × 2-30 + 0 × 2-31 + 0 × 2-32 + 0 × 2-33 + 0 × 2-34 + 0 × 2-35 + 0 × 2-36 + 0 × 2-37 + 0 × 2-38 + 0 × 2-39 + 0 × 2-40 + 0 × 2-41 + 0 × 2-42 + 0 × 2-43 + 0 × 2-44 + 0 × 2-45 + 1 × 2-46 + 0 × 2-47 + 0 × 2-48 + 0 × 2-49 + 1 × 2-50 + 1 × 2-51 + 1 × 2-52 =
0,5 + 0 + 0 + 0,062 5 + 0,031 25 + 0,015 625 + 0,007 812 5 + 0,003 906 25 + 0,001 953 125 + 0,000 976 562 5 + 0 + 0 + 0,000 122 070 312 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0,000 000 000 000 014 210 854 715 202 003 717 422 485 351 562 5 + 0 + 0 + 0 + 0,000 000 000 000 000 888 178 419 700 125 232 338 905 334 472 656 25 + 0,000 000 000 000 000 444 089 209 850 062 616 169 452 667 236 328 125 + 0,000 000 000 000 000 222 044 604 925 031 308 084 726 333 618 164 062 5 =
0,5 + 0,062 5 + 0,031 25 + 0,015 625 + 0,007 812 5 + 0,003 906 25 + 0,001 953 125 + 0,000 976 562 5 + 0,000 122 070 312 5 + 0,000 000 000 000 014 210 854 715 202 003 717 422 485 351 562 5 + 0,000 000 000 000 000 888 178 419 700 125 232 338 905 334 472 656 25 + 0,000 000 000 000 000 444 089 209 850 062 616 169 452 667 236 328 125 + 0,000 000 000 000 000 222 044 604 925 031 308 084 726 333 618 164 062 5 =
0,624 145 507 812 515 765 166 949 677 222 874 015 569 686 889 648 437 5(10)
5. Pune toate numerele împreună, pentru a calcula valoarea numărului zecimal real în precizie simplă:
(-1)Semn × (1 + Mantisă) × 2(Exponent ajustat) =
(-1)0 × (1 + 0,624 145 507 812 515 765 166 949 677 222 874 015 569 686 889 648 437 5) × 2999 =
1,624 145 507 812 515 765 166 949 677 222 874 015 569 686 889 648 437 5 × 2999 = ...
= 8 701 429 454 720 108 086 351 170 140 216 226 261 932 006 132 456 139 580 969 529 276 351 563 879 082 621 785 671 028 633 663 017 824 781 239 409 004 959 483 544 266 024 187 759 059 735 284 159 147 382 760 732 455 169 716 847 043 866 116 991 665 010 076 275 318 436 278 147 238 125 439 381 822 361 605 265 242 285 337 419 116 065 555 542 185 408 248 075 261 208 011 457 369 986 150 300 830 094 327 808
0 - 111 1110 0110 - 1001 1111 1100 1000 0000 0000 0000 0000 0000 0000 0000 0100 0111, binar pe 64 de biți, precizie dublă, în virgulă mobilă în standard IEEE 754, scris ca număr în sistem zecimal, scris în baza 10 (double) = 8 701 429 454 720 108 086 351 170 140 216 226 261 932 006 132 456 139 580 969 529 276 351 563 879 082 621 785 671 028 633 663 017 824 781 239 409 004 959 483 544 266 024 187 759 059 735 284 159 147 382 760 732 455 169 716 847 043 866 116 991 665 010 076 275 318 436 278 147 238 125 439 381 822 361 605 265 242 285 337 419 116 065 555 542 185 408 248 075 261 208 011 457 369 986 150 300 830 094 327 808(10)
Spații au fost folosite pentru a grupa digiți, în binar câte 4, în zecimal câte 3.