Suma liczb binarnych 1010 + 111 zapisana w systemie dziesiętnym wyniesie
A. 18
B. 19
C. 17
D. 16
Pytanie z egzaminu CKE, styczeń 2014 (arkusz E.12-X-14.01).
Odpowiedź 17 jest poprawna, bo liczby 1010 i 111 są zapisane w systemie binarnym, czyli o podstawie 2. Trzeba więc najpierw potraktować każdą pozycję jako kolejną potęgę liczby 2, licząc od prawej strony. Liczba 1010₂ to 1×2³ + 0×2² + 1×2¹ + 0×2⁰, czyli 8 + 0 + 2 + 0 = 10. Liczba 111₂ to 1×2² + 1×2¹ + 1×2⁰, czyli 4 + 2 + 1 = 7. Po dodaniu w systemie dziesiętnym dostajemy 10 + 7 = 17. Można też dodać binarnie: 1010₂ + 0111₂ = 10001₂, a 10001₂ to 16 + 1 = 17. Z mojego doświadczenia warto zawsze dopisywać indeks podstawy, np. 1010₂, bo w informatyce ta sama sekwencja cyfr może znaczyć coś zupełnie innego w różnych systemach liczbowych. To jest dobra praktyka spotykana przy analizie adresów, masek sieciowych, kodów maszynowych i pracy z rejestrami procesora.
W tym zadaniu łatwo się pomylić, jeśli potraktuje się zapis 1010 albo 111 jak zwykłe liczby dziesiętne, albo jeśli podczas dodawania binarnego zgubi się przeniesienie. Wyniki 16, 18 i 19 nie pasują do poprawnego przeliczenia, bo system binarny działa na podstawie 2, a nie 10. Każda pozycja ma wagę 1, 2, 4, 8, 16 i tak dalej, a nie 1, 10, 100. Dlatego 1010₂ nie oznacza tysiąc dziesięć, tylko 8 + 2 = 10. Podobnie 111₂ nie oznacza sto jedenaście, tylko 4 + 2 + 1 = 7.
Częsty błąd prowadzący do wyniku 16 to niedoliczenie jedynki po dodaniu 7 do 10 albo niepoprawne przeliczenie wyniku 10001₂. Z kolei 18 lub 19 zwykle biorą się z chaotycznego mieszania systemów: trochę liczymy jak w binarnym, trochę jak w dziesiętnym, no i robi się bałagan. W branżowej praktyce, szczególnie przy adresacji IP, maskach podsieci, uprawnieniach bitowych czy analizie danych niskopoziomowych, taka pomyłka może dać realnie zły wynik konfiguracji. Moim zdaniem najlepszy nawyk to najpierw wyrównać liczby do prawej strony, dopisać zera z lewej, a potem albo dodać bitowo, albo spokojnie przeliczyć obie liczby na system dziesiętny. Tu wychodzi 10 + 7 = 17, bez żadnych dodatkowych sztuczek.
Częsty błąd prowadzący do wyniku 16 to niedoliczenie jedynki po dodaniu 7 do 10 albo niepoprawne przeliczenie wyniku 10001₂. Z kolei 18 lub 19 zwykle biorą się z chaotycznego mieszania systemów: trochę liczymy jak w binarnym, trochę jak w dziesiętnym, no i robi się bałagan. W branżowej praktyce, szczególnie przy adresacji IP, maskach podsieci, uprawnieniach bitowych czy analizie danych niskopoziomowych, taka pomyłka może dać realnie zły wynik konfiguracji. Moim zdaniem najlepszy nawyk to najpierw wyrównać liczby do prawej strony, dopisać zera z lewej, a potem albo dodać bitowo, albo spokojnie przeliczyć obie liczby na system dziesiętny. Tu wychodzi 10 + 7 = 17, bez żadnych dodatkowych sztuczek.