Liczba 5110 zapisana w systemie dwójkowym ma postać
Liczba 51₁₀ w systemie dwójkowym ma postać 110011₂, ponieważ zapis binarny opiera się na potęgach liczby 2. Czytamy bity od lewej strony jako wartości: 2⁵, 2⁴, 2³, 2², 2¹, 2⁰, czyli 32, 16, 8, 4, 2, 1. Dla liczby 110011₂ mamy więc: 1·32 + 1·16 + 0·8 + 0·4 + 1·2 + 1·1 = 32 + 16 + 2 + 1 = 51. Dlatego zapis jest poprawny. Moim zdaniem najpewniejszą metodą w takich zadaniach jest właśnie rozpisanie wag bitów, bo wtedy widać wszystko czarno na białym i trudniej się pomylić. W praktyce ta wiedza przydaje się przy adresacji IP, maskach podsieci, analizie uprawnień w systemach Unix/Linux, kodowaniu znaków oraz przy pracy niskopoziomowej ze sprzętem. W informatyce system dwójkowy jest podstawą reprezentacji danych, bo komputery operują stanami logicznymi 0 i 1. Dobra praktyka branżowa to zawsze oznaczać podstawę systemu, np. 51₁₀ i 110011₂, szczególnie w dokumentacji technicznej albo podczas diagnostyki, żeby nie było nieporozumień.
Jeżeli wynik nie wyszedł jako 110011₂, to najczęściej problem leży w złym przypisaniu wag bitów albo w pominięciu którejś potęgi dwójki. W systemie binarnym każda pozycja ma konkretną wartość: od prawej strony są to 1, 2, 4, 8, 16, 32 i tak dalej. Nie można traktować zapisu 101001 czy 101011 jak zwykłej liczby dziesiętnej złożonej z zer i jedynek, bo to zupełnie inny system pozycyjny. Dla przykładu 101001₂ daje 32 + 8 + 1 = 41, więc brakuje tu wartości 10 względem liczby 51₁₀. Zapis 101011₂ to 32 + 8 + 2 + 1 = 43, czyli też za mało. Z kolei 110111₂ oznacza 32 + 16 + 4 + 2 + 1 = 55, a więc jest już za duży. Widać więc, że same podobne cyfry nie wystarczą, trzeba policzyć ich wagi. Typowy błąd myślowy polega na dobieraniu bitów na oko albo na wykonywaniu dzielenia przez 2 bez zapisywania reszt w odpowiedniej kolejności. Przy konwersji z systemu dziesiętnego można też rozłożyć 51 na sumę potęg dwójki: 51 = 32 + 16 + 2 + 1. Tam, gdzie dana potęga występuje, wpisujemy 1, a tam gdzie jej nie ma, wpisujemy 0. Dla pozycji 32, 16, 8, 4, 2, 1 otrzymujemy kolejno 1, 1, 0, 0, 1, 1, czyli 110011₂. Z mojego doświadczenia warto po konwersji zrobić szybkie sprawdzenie w drugą stronę, bo to prosta kontrola jakości, podobna do dobrych praktyk stosowanych przy konfiguracji sieci czy analizie danych binarnych.