388 Akademia sieci Cisco
Znaczna część pracy z przetwarzaniem liczb binarnych w sieciach dotyczyć pojedynczych bajtów (oktetów), to znaczy, że od razu będzie przekształcać liczby 8-bilowe.
Dowolny adres IP jest wyrażony jako liczba w notacji dziesiętnej, oddzielona kropkami: W.X.Y.Z, gdzie W, X. Y i /. są liczbami dziesiętnymi, których reprezentacja binarna zawiera 8 bitów. Najmniejszą liczbą dziesiętną, która może być reprezentowana przez jeden bajt (00000000) jest 0. Największą liczbą, która jest reprezentowana przez jeden bajt (11111111) jest 255. jak to zostało wyliczone w tabel: F.6. Wynika z tego, że w zakresie od 0 do 255 jest 256 liczb dziesiętnych, które mogą być reprezentowane przez jeden bajt. Stąd w adresie IP. każda z dziesiętnych liczb W, X, Y i Z może przyjmować wartość z zakresu między 0 i 255. Przykłady adresów IP to: 140.57.255.0, 204.65,103.243 lub 5.6.7.8.
Wiecie już teraz jak przekształcać liczbę binarną na liczbę dziesiętną. Dla sprawdzenia umiejętności przechodzenia z reprezentacji binarnej na dziesiętną, proponujemy sprawdzić, żc 11111001 ma równowartość dziesiętną równą 249. Po wykonaniu kilku takici ćwiczeń może się okazać, że nabierzecie takiej wprawy, że nie będziecie już więcej musieli korzystać z pomocy tabel.
Konwersja liczby dziesiętnej na binarną jest jedną z najczęściej wykonywanych czynności związanych z adresami IP. Jak w przypadku większości problemów matematycznych. tak i tutaj istnieje wiele metod rozwiązania tego problemu. W tym podrozdziale o mów'i my jedną z nich. niemniej możecie równie dobrze korzystać z jakiejś wdasnei metody, jeśli uznacie, że wasz sposób jest prostszy.
Aby przekształcić liczbę dziesiętną na binarną, najpierw trzeba odnaleźć największą potęgę dwójki, która mieści się w danej liczbie dziesiętnej. Jako przykład weźmy liczbę 35. Szukamy największej potęgi liczby 2 mniejszej lub równej 35. 64 to za dużo. ale niższa potęga, 32 jest odpowiednia. Tak wuęc należy umieścić I w' kolumnie 2\ Co nam teraz pozostało? Ustalimy to odejmując od 35 liczbę 32: 35-32=3. Teraz, po kolei przeglądamy kolumny z kolejnymi, niższymi potęgami dwójki. Kolejna potęga to 24 czyli 16. Sprawdzamy czy ta wartość jest mniejsza lub równa trzy. Ponieważ jest większa, umieszczamy w kolumnie 24 cyfrę 0. Kolejna potęga to 2’, musimy sprawdzić, czy 2" czyli 8 jest mniejsze równe 3. Tak nie jest, więc w kolumnie 2' też umieszczamy 0. Dalej jest 2" czyli 4. Czy jest mniejsze lub równe 3? Nie. wuęc również w kolumnie 2' umieszczamy 0.Kolejna kolumna to 21 czyli 2. Sprawdzamy, czy ta wartość jest mniejsza równa 3. Tym razem tak, w'ięc wpisujemy w kolumnie 21 wartość 1. Znowu wyznaczamy resztę: 3-2 =1. Na koniec sprawdzamy, czy 2° lub 1 jest mniejsze lub rówme od pozostałej jedynki. Jako że lak, umieszczamy w kolumnie 2' wartość L. Tak więc dziesiętna liczba 35 jest rów-na binarnej liczbie 00100011 lub inaczej 100() 11. Cały proces został podsumowany w tabeli F.7.
Tabela F.7
i |
25 |
2* |
22 |
2J |
2* |
2" | |
I2S |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
W kolejnym przykładzie konwersji liczby dziesiętnej na postać binarną weźmiemy na warsztat dziesiętną liczbę 239. Jak pewnie zauważyliście zajmujemy się tutaj tylko kon-wers ą liczb, które można przedstawić /.a pomocą jednego bajtu, czyli pracujemy z liczbami i. przedziału od 0 do 255, które można wyrazić za pomocą pojedynczego bajtu. Wróćmy jeszcze raz do tabeli F.3 i sprawdźmy, jaka jest największa potęga dwójki mniejsza lub równa 239. Jak łatwo zauważyć kryterium to spełnia liczba 128. dlatego w kolumnie 2’ umieszczamy jedynkę, lic nam pozostało reszty? Ustalimy to odejmując 128 od 239: 239-128=111. Ponieważ koleiną niższą potęga dwójki jest 2 \ ustalamy czy 2" czyli 64 nie jest przypadkiem niniejsze lub równe 111. Ponieważ tak jest, umieszczamy 1 w kolumnie 2 Ile nam zostało reszty? Ustalimy to odejmując 64 od 111: 111-64=47. Kolejną potęgą ;est l\ tak więc musimy ustalić, czy 2' czyli 32 jest mniejsze lub równe od pozostałej reszty 47. Ponieważ tak jest, umieszczamy edynkę również w kolumnie 2 . Ile nam zostało reszty? Ustalimy to odejmując 32 od 47: 47-32=15. Kolejną potęgą jest 24 lub 16, czy ta potęga jest mniejsza równa 15? Nie, więc w kolumnie 2“ umieszczamy zero. Kolejna potęgą jest 2J lub 8, czy ta potęga jest mniejsza równa 15? Tak, więc w kolumnie 2 umieszczamy wartość 1. Ile nam zostało reszty? Odejmujemy: 15-8=7. Teraz sprawdzamy, czy kolejna potęga 2' lub 4 jest mniejsza lub równa od 77 lak, więc w kolumnie 2' zapisujemy 1. Ile nam zostało reszty? Odejmujemy: 7-4=3. Teraz sprawdzamy, czy kolejna potęga 2 iub 2 jest mniejsza łub równa od 3? Tak. więc w kolumnie 2 zapisujemy 1. Ile nam zostało reszty? Odejmujemy: 3-2=1. Na koniec ustalamy czy 2" lub I jest mniejsze a.b równe od pozostałej wartości 17 Jako że tak, umieszczamy jeden w kolumnie 2Stąd binarna reprezentacja liczby dziesiętnej 239 ma postać 11101111. Wynik prezentuje tabela F.8.
Tabela F.8
Z |
2a |
2' |
2‘ |
2' |
22 |
22 |
2" |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
1 |
1 |
l |
0 |
1 |
1 |
1 |
1 |
Procedura ta może być zastosowana dla dowolnej liczby dziesiętnej. Rozpatrzmy liczbę dziesiętną 1000000 (jeden milion). Jaka jest największa potęga dwójki większa lub równa od miliona? Przy odrobinie cierpliwości można ustalić, że 2,9=524288. a 2'" = 1048576. Tak więc. największą potęgą liczby dwa, która jest mniejsza lub równa 1000000