Witam.
Jako że mi się nudzi i pewnie w ferie jeszcze bardziej mi się będzie nudzić, to podzielę się z wami paroma rzeczami z techbazy (głównie z cyfrówki ) (kierunek Tele-Inf, ale każdy kto idzie do jakiegokolwiek elektronika/mechatronika też to będzie miał). Na dzisiaj trochę o binarce, co przydaje się ogólnie w programowaniu, a i także o innych systemach liczbowych. Zapraszam.
Na początek: Co to jest tak naprawdę system dziesiętny?
Tym systemem posługujemy się tak naprawdę na co dzień. Wygląda on tak:
D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Czyli zawiera on cyfry (ważne: nie mylić cyfr z liczbami!) od 0 do 9. A teraz dajmy sobie jakąś dowolną liczbę w tym systemie, np. 953, i rozłóżmy na czynniki.
953 = 9 * 10^2 + 5 * 10^1 + 3 * 10^0
(^ to potęga)
Po tym przykładzie możemy wywnioskować, że system dziesiętny to system pozycyjny, czyli każda cyfra ma określoną przez bazę systemu wartość. W tym przypadku baza wynosi 10, ponieważ jest to system dziesiętny i z definicji zawiera 10 cyfr. Więc każda cyfra w każdej liczbie systemu pozycyjnego ma określoną w taki sposób wartość:
x * z^y
gdzie x to cyfra, z to podstawa danego systemu, w naszym przypadku 10, a y to pozycja tej cyfry w liczbie liczona od 0. Na tym opiera się każdy system pozycyjny, więc to podstawa.
Skoro już wiemy co to system pozycyjny i jak wygląda, możemy przejść dalej.
System binarny (dwójkowy)
System binarny to system w którym działa każde urządzenie cyfrowe (NIE KAŻDE URZĄDZENIE ELEKTRONICZNE!). W tym momencie jest to standard, ponieważ wcześniej urządzenia opierały się na sygnałach analogowych, a w dzisiejszych czasach wszystko jest łatwiej zrobić w technice cyfrowej.
Krótko mówiąc, można powiedzieć że to najprostszy z systemów pozycyjnych, ponieważ wygląda on tak:
B = {0, 1}
Zawierają się na niego tylko 2 cyfry, odpowiadające stanowi niskiemu (0) oraz wysokiemu (1) (ale to tłumaczenie bardziej dla elektroników).
No, a więc jak wygląda dowolna liczba binarna, oraz jak rozłożyć ją na czynniki? Pamiętamy wzór z systemu dziesiętnego, w tym wypadku bazą jest 2, czyli przykładowo liczba 101001 rozłożona na czynniki będzie wyglądała tak:
101001 = 1 * 2^5 + 0 * 2^4 + 1 * 2^3 + 0 * 2^2 + 0 * 2^1 + 1 * 2^0
Powyższy przykład opisuje jednocześnie sposób konwersji między systemem binarnym a dziesiętnym.
Troszkę skróćmy sobie to równanie.
101001 = 1 * 2^5 + 0 * 2^4 + 1 * 2^3 + 0 * 2^2 + 0 * 2^1 + 1 * 2^0 = 2^5 + 2^3 + 2^0 = 32 + 8 + 1 = 41
Tadam! Umiemy przekonwertować liczbę binarną na dziesiętną!
A jak przekonwertować liczbę dziesiętną na dwójkową?
Musimy dzielić przez 2, a reszta będzie nam określała cyfrę w systemie dwójkowym. Opiszę to na przykładzie liczby 96.
96 : 2 = 48 reszty 048 : 2 = 24 reszty 024 : 2 = 12 reszty 012 : 2 = 6 reszty 06 : 2 = 3 reszty 03 : 2 = 1 reszty 11 : 2 = 0 reszty 1
Teraz bierzemy wartości reszty od dołu go góry i zapisujemy jako liczbę. Wychodzi 1100000. Możemy sprawdzić na kalkulatorze (tryb programisty) czy to poprawny wynik.
No dobrze, znamy już system binarny. Teraz kolejny system, który przydaje się w informatyce.
System hexadecymalny (szesnastkowy)
System ten jest kolejnym systemem, stworzony został by "zmiejszyć liczby", ponieważ cyfra w systemie szesnastkowym (dalej będę nazywał go po prostu hex) ma tak jakby większą wartość niż liczba w systemie dziesiętnym, z powodu że ma większą podstawę.
Wygląda on tak:
H = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Okej, ale co tam robią litery? Tym literom są przyporządkowane wartości, w systemie dziesiętnym można je określić tak:
A = 10B = 11C = 12D = 13E = 14F = 15
W tym systemie jest ogólnie określana pamięć komputera, adresy, i ogólny assembler. Także dla niektórych to podstawa.
Przechodzimy do rozpisania go. Weźmiemy liczbę 4BD. W tym przypadku podstawa wynosi 16.
4BD = 4 * 16^2 + 11 * 16^1 + 13 * 16^0
I w tym momencie możemy zrobić to samo, co w binarnym - zamienić na system dziesiętny.
4BD = 4 * 16^2 + 11 * 16^1 + 13 * 16^0 = 4 * 256 + 11 * 16 + 13 * 1 = 1024 + 176 + 13 = 1213
Proszę bardzo. Oczywiście możemy też zrobić tu to samo, co w systemie binarnym, jeśli chcemy zamienić liczbę systemu dziesiętnego na hex, dzielimy przez podstawę systemu. Przykładowo, liczba 632:
632 : 16 = 39 reszty 839 : 16 = 2 reszty 72 : 16 = 0 reszty 2
Zapisujemy od dołu do góry reszty z dzielenia, i wychodzi nam liczba 278!
Mógłbym jeszcze tutaj omówić system ósemkowy, ale zasada wygląda w nim tak samo jak w powyższych - zawiera od cyfry od 0 do 7, zasady zamiany na i z systemu dziesiętnego wyglądają tak samo. Polecam dla kogoś kto się tym interesuje, ale w następnych tutkach będą o nim wzmianki.
Cóż, kontynuacja niedługo. Enjoy.