środa, 28 września 2016

System szesnastkowy


System szesnastkowy (inaczej heksadecymalny) jest szeroko używany w informatyce. Jego podstawą jest liczba 16 czyli do budowy liczb wykorzystujemy szesnaście cyfr. Pierwszych dziesięć jest takich samych jak w systemie dziesiętnym. Cyfra dziesięć to litera Acyfra 11 to litera B, itd. :
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Dodatkową własnością jest to, że każdą cyfrę w tym systemie możemy przedstawić za pomocą dokładnie czterech cyfry zero-jedynkowych ponieważ:
16=24
Dlatego komputery nie muszą używać dodatkowych koderów/dekoderów do ich konwersji na dwójkowy i odwrotnie. Gdyby informacje były przedstawiane w systemie dwójkowym, zapis ten byłby bardzo nieczytelny i długi, dlatego w wielu sytuacjach wykorzystuje się w tym celu system szesnastkowy:

Przykładowe zastosowanie

  •  prezentacja kolorów w języku HTML lub w programach graficznych, na przykład w trybie RGB nasycenie każdego z trzech kolorów (czerwonego, zielonego i niebieskiego) jest wyrażana za pomocą dwóch cyfr w systemie szesnastkowym:
    • FF FF FF - biały
    • 00 00 00 - czarny
    • 00 00 FF - niebieski
  • zasoby urządzeń zainstalowanych w komputerze
  • adresowanie pamięci RAM

Konwersja z dziesiętnego na szesnastkowy 

Algorytm zamiany na dziesiętny jest analogiczny jak w przypadku zamiany innych systemów liczbowych na system dziesiętny.
Dla przykładu zamieńmy liczbę (A3F2)HEX. Podstawą jest liczba 16, a więc przemnażamy kolejne cyfry przez kolejne potęgi liczby 16 począwszy od prawej strony:
(A3F2)HEX=A163+3162+F161+2160=
104096+3256+1516+21=41970
Do zamiany na dziesiętny wykorzystujemy algorytm: Schemat Hornera.

Konwersja z dziesiętnego na szesnastkowy

Tu postępujemy tak samo jak w przypadku zamiany dziesiętnego systemu na inne, czyli wykonujemy operację dzielenia całkowitego przez 16 i reszty z dzielenia przez 16. W lewej kolumnie zapisujemy kolejne wyniki z dzielenia przez 16, natomiast w prawej reszty z dzielenia. Pamiętajmy, że wynik spisujemy z prawej kolumny od tyłu.
 dziesiętny na szesnastkowy

Ostatecznie mamy: 41970=(A3F2)HEX

Konwersja z dwójkowego na szesnastkowy

Każda cyfra systemu heksadecymalnego jest reprezentowana przy użyciu czterech bitów (zer lub jedynek). Poniżej pokazane jest przyporządkowanie cyfr:

 A więc zamieniamy kolejne czwórki bitów (od prawej) na cyfry w systemie szesnastkowym. Dla przykładu zamieńmy liczbę: 
(100 1010 0000 1101 0011)2=(4A0D3)HEX

Zamiana na dwójkowy

Tu postępujemy podobnie jak w powyższym podpunkcie. Każdą cyfrę systemu szesnastkowego zamieniamy na cztery bity systemu dwójkowego:
(27F9)HEX=(10 0111 1111 1001)2
Cyfry wiodące opuszczamy. 
Dzięki za uwagę i  oczywiście w razie pytań piszcie w komentarzach ;) !

Coś poszło nie tak,odśwież stronę ;)

niedziela, 25 września 2016

System dwójkowy

Czym jest system dwójkowy? Dwójkowy system liczbowy, system binarny – pozycyjny system liczbowy, w którym podstawą jest liczba 2. Do zapisu liczb potrzebne są tylko dwie cyfry: 0 i 1
.
Coś poszło nie tak,odśwież stronę ;)

Inne cyfry?

Wyjaśnijmy to sobie się zaraz wszystko na konkretnym przykładzie. Weźmy na przykład kilka pierwszych liczb naszego systemu dziesiętnego. Będziemy je konwertować na system dwójkowy, zwany również binarnym. Pierwsza liczba w naszym systemie to 0 (zero). W systemie dwójkowym, liczba ta również jest równa 0, gdyż istnieje tam taka cyfra. Kolejna liczba to 1 (jeden). W systemie dwójkowym, również taka cyfra istnieje, więc zapisujemy 1. Kolejna liczba to 2 (dwa). Wiemy, że nie istnieje tam taka cyfra, więc dodajemy kolejną pozycję, a pozycję wysuniętą na prawo, zerujemy. Zatem liczba 2 w systemie dziesiętnym ma postać "10" w systemie dwójkowym. Bynajmniej nie jest to "dziesięć" tylko "jeden, zero". Kolejne liczby w systemie dziesiętnym to: 3, 4, 5, 6, 7, 8, 9 itd. W systemie dwójkowym wyglądają one odpowiednio: 11, 100, 101, 110, 111, 1000, 1001. Jak widzimy, zasada jest cały czas taka sama.

Zamiana liczby dziesiętnej na dwójkową

Gdybyśmy liczyli na piechotę, byśmy musieli sprawdzać kolejne wielokrotności liczby 2. Sposób ten raczej jest mało stosowany, zajmijmy się trochę lepszym. Jest to prosty sposób, wcale nie wymaga myślenia. Najpierw bierzemy liczbę, jaką chcemy skonwertować na zapis dwójkowy. Weźmy liczbę z poprzedniego rozdziału i sprawdźmy, czy nam się to zgadza. Zatem, liczba którą będziemy konwertować to 67. Sposób jest następujący: liczbę dzielimy przez 2 i jeżeli wynik będzie z resztą: zapisujemy 1, jeżeli nie - zapisujemy 0. Następnie znowu dzielimy przez 2 to co zostało z liczby, ale bez reszty. Taki proces trwa, aż zostanie 0 (zero). Otrzymane zera i jedynki zapisujemy w odwrotnej kolejności. Wyjaśni się to wszystko na konkretnym przykładzie. Zatem do dzieła: 
67| :2   |  1
33| :2   |  1
16| :2   |  0
8| :2   |  0
4| :2   |  0
2| :2   |  0
1| :2   |  0


   Co daje 1000011. Jak widzimy, wynik zgadza się. Widać również, że zawsze na samym końcu po podzieleniu będzie 0, zatem ostatnia liczba jest równa 1. Jeden podzielić na dwa zawsze wyjdzie 0,5 zatem wynik z resztą. Co za tym idzie - pierwsza cyfra w zapisie dwójkowym jest ZAWSZE RÓWNA 1. Nie tylko matematycznie można to udowodnić. W elektronice, również musi być taka postać rzeczy. Przyjęliśmy bowiem, że dla komputera brak przepływu prądu oznacza "0", natomiast przepływ prądu - "1". Sygnał zatem nie może zaczynać się od "0", gdyż jest to brak sygnału. Procesor nie wie, czy sygnał już się zaczął, czy jeszcze nie. Początek musi być "1" (jest sygnał).Jeżeli rozumiesz - zapraszam dalej. 

Zamiana liczby dwójkowej na dziesiętną

Otóż nie jest to zbyt skomplikowane. Przypomnijcie sobie sposób z liczbami w systemie ósemkowym. Tu oczywiście robimy to analogicznie tak samo, z tym, że podstawą jest naturalnie liczba 2. Weźmy sobie zatem jakąś liczbę zapisaną w systemie dwójkowym, np. 1000011. Jak już wcześniej mówiliśmy, zaczynamy od cyfr najsłabszych, czyli wysuniętych najbardziej na prawo. Najbardziej na prawo wysunięta jest cyfra 1, a więc tak jak poprzednio mnożymy ją przez podstawę systemu z odpowiednią potęgą. Podstawą systemu jest 2. Zatem, cała konwersja ma postać: 1*20 + 1*21 + 0*22 + 0*23 +0*24 + 0*25 +1*26, a to się równa: 1 + 2 + 0 + 0 + 0 + 0 + 64, czyli jest to 67 w systemie dziesiętnym. Moje gratulację - udało się skonwertować liczbę w zapisie dwójkowym na zapis dziesiętny. Teraz dobrze by było gdybyś przeanalizował sobie dokładnie powyższą konwersję. Jeżeli jej nie rozumiesz - przeczytaj jeszcze raz.

Po co to w ogóle?



Coś poszło nie tak,odśwież stronę ;) No więc, jak zapewne wszyscy wiedzą, komputer składa się z części elektronicznych. Wymiana informacji polega na odpowiednim przesyłaniem sygnałów. Podstawą elektroniki jest prąd elektryczny, który w układach elektronicznych albo płynie albo nie. Zatem, aby łatwiej było komputerowi rozpoznawać sygnały, interpretuje on płynący prąd jako "1" (jeden), a jego brak jako "0" (zero). Nie trudno się domyślić, że komputer operując odpowiednim ustawieniem, kiedy ma płynąc prąd, a kiedy nie ustawia różne wartości zer i jedynek. Procesor konwertuje je na liczby i w ten sposób powstają czytelne dla nas obrazy, teksty, dźwięk itd. Mam nadzieję, że w ten "chłopski" sposób wyjaśniłem wam mniej więcej jak to się odbywa. Nie tylko w postaci sygnałów elektrycznych reprezentowane mogą być zera lub jedynki. Również na wszelkich nośnikach, np. płyta CD, na której nagrywarka wypala malutkie wgłębienia. Właśnie te wgłębienia są jedynkami, a "równiny" zerami (albo i odwrotnie).    Zatem podsumujmy: komputer zna tylko zera i jedynki. Bity przyjmują tylko jedną z tych dwóch wartości. Osiem bitów to jeden bajt. Ustawienie ośmiu bitów decyduje o numerze, który może przyjąć maksymalnie 256. Numer decyduje o znaku, jaki komputer ma wykorzystać. 

To wszystko na dziś:) Mam nadzieję że pomogłem.Jeśli macie pytania piszcie w komentarzach ;)!
Coś poszło nie tak,odśwież stronę ;)