poniedziałek, 7 lutego 2011

Systemy liczbowe cz. II

Tym razem będziemy operować kodem binarnym, jak wiemy  procesory, mikroprocesory i i najprzeróżniejsze kontrolery opierają się na kodzie binarnym a jak go policzyć? Więc najpierw zaczniemy od konwersacji bezpośrednich

BIN                DEC               HEX
0000                   0                      0
0001                   1                      1
0010                   2                      2
0011                   3                      3
0100                   4                      4
0101                   5                      5
0110                   6                      6
0111                   7                      7
1000                   8                      8
1001                   9                      9
1010                  10                     a
1011                  11                     b
1100                  12                     c
1101                  13                     d
1110                  14                     e
1111                  15                     f

Ta tabelka obrazuje nam wartości dla konwersacji bezpośrednich

Teraz spróbujemy przekształcić wartości binarne w heksadecymalne odwrotnie działa to w ten sam sposób

10100110101110 = 29ae

Otrzymaliśmy dziwny wynik skąd to się wzięło? A więc  przy przeliczaniu na wartości heksadecymalne. Grupujemy wartość binarną od tyłu czwórkami.
1110 = e
1010 = a
1001 = 9
0010 = 2

W ten sam sposób konwertujemy system oktagonalny (ósemkowy) z tym że w systemie ósemkowym grupujemy wartość binarną trójkami.

Natomiast jeżeli nie mamy dostępu do komputera  i chcemy policzyć kod BCD to musimy każdą z liczba zamienić wg tabeli na kod binarny np.

8          1          7          2
1000   0001    0111    0010

W kodzie decymalnym nie zachodzą konwersje bezpośrednie.

poniedziałek, 31 stycznia 2011

Systemy Liczbowe cz I

Dzisiaj postanowiłem napisać o systemach liczbowych i sposobach ich przeliczania. Na początku chciałbym przedstawić jak przelicząć nasze normalne liczby których używamy na codzień (decymalne) na  systemy oktagonalny, heksadecymalny i  dwujkowy. UWAGA System dwójkowy nie jest to kod binarny. 

DEC -> HEX
Weźmy sobie dziesiętną liczbę 65 i zamienimy ją na system hexadecymalny

65 : 16 = 4 reszta 1    
4 : 16 = 0 reszta 4      

Teraz zczytujemy resztę z konwersji od dołu czyli wyszło na 41 w systemie heksadecymalnym.

DEC -> OCT
Teraz zrobimy konwersję w systemie octagonalnym dla liczby 75

75 : 8 = 9 reszta 3
9 : 8 = 1 reszta 1
1 : 8 = 0 reszta 1

Wykorzystując tą samą zasadę co wyżej uzyskaliśmy wynik 113 w systemie oktagonalnym.

DEC -> SYSTEM (dwójkowy)
Został nam jeszcze system dwójkowy. Weźmy liczbę 35

35 : 2 = 17 reszta 1
17 : 2 = 8 reszta 1
 8 : 2 = 4 reszta 0
 4 : 2 = 2 reszta 0
 2 : 2 = 1 reszta 0
 1 : 2 = 0 reszta 1

W tym przypadku równierz wykorzystamy tą zasadę co w poprzednich więc naszym wynikiem będzie 100011.

Teraz można sobie zadać pytanie zkąd się biorą te wyniki bo jeszcze w przypadku dzielenia przez 2 to widać ale resztę niekoniecznie. W przypadku każdej liczby znajdujemy najwiekszą liczbę podzielną przez liczbę którą dzielmy ale mniejszą od tej którą dzielimy. Po podzieleniu tej liczby zapisujemy wynik a róznicę między liczbami które nie są podzielne a tymi które są piszemy jako reszta.

sobota, 29 stycznia 2011

Adresacja sieci cz. II


Dziś udało mi się znaleźć chwilę czasu żeby napisać drugą część artykułu o adresacji sieci. Tym razem skupimy się na dzieleniu sieci na podsieci . Mamy podany adres sieci i musimy podzielić go na 3 podsieci po 20 hostów. Jak to zrobić?
Adres IP: 172.131.1.128.
Z tabeli z poprzedniego posta jesteśmy wstanie ustalić jaka będzie maska domyślna  dla sieci co zatem idzie też i podsieci. Maska domyślna sieci będzie 255.255.0.0. Ale za nim ustalimy maskę dla podsieci, najpierw musimy ustalić ile hostów musimy mieć w każdej podsieci aby móc podzielić je tak aby było w niej 20 hostów. Najbliższa temu możliwość jest że na każdą podsieć przypadnie nam po 32 hosty.
Czyli teraz możemy ustalić maskę domyślną dla podsieci. Będzie to wyglądało tak 256-32=224. Z tego prostego działania wynika że maska podsieci będzie wynosiła 255.224.0.0
Teraz weźmy się za dzielenie sieci na te 3 podsieci.

IP sieci          IP Broadcastu               IP Bramy                   Hosty                   Hosty wolne
                                                                (Gateway)

172.131.1.128    172.131.1.159             172.131.1.158     172.131.1.129-148     172.131.1.149-157


172.131.1.160    172.131.1.191             172.131.1.190     172.131.1.161-180     172.131.1.181-189


172.131.1.192    172.131.1.223             172.131.1.222     171.131.1.193-212     172.131.1.213-221


Teraz spróbujemy to omówić, ponieważ zrobiliśmy jakąś tabelkę wartości wpisaliśmy z kosmosu i część osób pewnie zastanawia się skąd te wartości wziąć.

Jak już ustaliliśmy dla każdej podsieci będą potrzebne nam 32 hosty aby móc część z nich przydzielić hostom które potrzebujemy.

Teraz więc ustalamy IP sieci dla każdej podsieci dla podsieci pierwszej 172.131.1.128 jest to nasz dany adres, dla podsieci drugiej 128+32 = 160 jak widać do końcówki adresu IP dodaliśmy 32 hosty, dla podsieci trzeciej robimy to samo 160+32 = 192. W ten sposób policzyliśmy IP sieci. Teraz musimy policzyć adres rozgłoszeniowy (Broadcast). Ogólna ale niepisana zasada przyjęta jest taka że od adresu następnej sieci odejmujemy 1 więc mamy 160-1 = 159 i tak dalej. Bramę liczymy odejmując kolejną jedynkę ale tym razem od Broadcastu. I to co nam zostanie w danej puli możemy przydzielić na hosty które są nam potrzebne a to czego nie wykorzystamy, piszemy jako hosty wolne.