Pozycyjne systemy liczbowe

system addytywny – zapisaną liczbę odczytuje się jako sumę wartości jej poszczególnych cyfr np rzymski system liczbowy
np jeśli “X”=10,”V”=5,”I”=1 to XVI = 10+5+1 = 16

system pozycyjny – o wartości liczb decyduje jej miejsce w zapisie liczby
np:

Podstawą systemu dziesiętnego jest liczba 10, będąca jednostką drugiego rzędu. Trzeciego rzędu 100 itd. Jednostką pierwszego rzędu jest 1.

———————————————————————————————————————————-

WYTŁUMACZENIA !

———————————————————————————————————————————-

1 bit może przyjmować wartości tylko 0 albo 1 (fałsz – prawda). Za pomocą bitu można przekazać dwie różne informacje przypisując je odpowiednio stanowi 0 i 1

co w sytuacji kiedy chcemy zapisać liczby większe od 1 ? w końcu jeden bit to za mało.
musimy użyć kolejny bit.
Dwa bity dają nam już 4 rożne symbole/kombinacje 00, 01, 10, 11 !
Trzy bity dają nam już 8 rożnych symboli/kombinacji 000, 001, 010, 011, 100, 101, 110, 111 !
Ile symboli/kombinacji dają nam 4 bity ?

zapisując liczby na:
– jednym bicie możemy zapisać liczby 0-1
– dwóch bitach możemy zapisać liczby 0-3
– trzech bitach możemy zapisać liczby 0-7
– czterech bitach możemy zapisać liczby 0-15
…..
– na 8 bitach (1Bajt) możemy zapisać liczby od 0-255

co zrobić aby móc zapisać większą liczbę ? trzeba skorzystać z następnego Bajtu itd

przykłady zakresów – typy zmiennych:

int zmienne całkowite mogą przechowywać liczby całkowite.
32 bitowe liczby całkowite
Zakres: -231…231 – 1,    -2147483648…2147483647.
Każda zmienna int zajmuje w pamięci komputera 4 bajty.

short int zmienne całkowite mogą przechowywać liczby całkowite.
16 bitowe liczby całkowite
Zakres: -215…215 – 1,   -32768…32767.
Każda zmienna short int zajmuje w pamięci komputera 2 bajty

char
8 bitowe liczby całkowite
Zakres: -27…27 – 1,    -128…127.
Każda zmienna char zajmuje w pamięci komputera 1 bajt. Typ ten jest interpretowany przez operacje wejścia wyjścia jako typ znakowy – jedna zmienna char może przechować jeden znak ASCII. Poza tym zmienne char możemy traktować jak zwykłe zmienne całkowite.

Przy obliczeniach wynik może przekroczyć dozwolony zakres wartości dla danego typu całkowitego, co prowadzi do błędów. Uruchom program.

bool 1 bitowa dana logiczna.
Każda zmienna bool zajmuje w pamięci komputera 1 bajt. Wartość zmiennej jest przechowywana w najmłodszym bicie. Pozostałe 7 bitów jest niewykorzystywane.
00000000 – fałsz
00000001 – prawda
Wartość wyrażenia jest obliczana, a następnie dokonana zostaje konwersja tej wartości zgodnie z typem zmiennej. Dla zmiennych bool wartość wyrażenia różna od 0 oznacza prawdę – zostanie ustawiony ostatni bit zmiennej i w efekcie otrzymamy wartość 1: Zobacz program

Rozmiar zwraca funkcja sizeof(), do której możemy przekazać zmienną lub typ. Wynikiem jest liczba bajtów pamięci, w której zostanie zapisany obiekt danego typu. Uruchom program

System dwójkowy (binarny)

komputer posługuje się systemem binarnym, czyli dwójkowym. W systemie tym mamy do dyspozycji dwie cyfry 0 i 1.

Np. liczba zapisana w dziesiętnym systemie liczbowym jako 10, w systemie dwójkowym przybiera postać 1010, gdyż:

———————————————————————————————-

8 bitów = 1 Bajt (krótkie słowo)
16 bitów = 2 Bajty (słowo)
32 bity = 4 Bajty (długie słowo = podwójne słowo)
64 bity = 8 Bajtów (poczwórne słowo)

MSB = Most Significant Bit = najbardziej znaczący bit
LSB = Least Significant Bit = najmniej znaczący bit

Wyznaczanie rozwinięcia dwójkowego liczby dziesiętnej – istotna jest reszta z dzielenia !

http://www.edu.godula.com
http://www.edu.godula.com

Teraz wystarczy przepisać uzyskane reszty z dzieleń od dołu do góry: 10101101

System szesnastkowy

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

wartość
dziesiętna
cyfra
szesnastkowa
wartość
dwójkowa
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Aby przeliczyć liczbę z systemu szesnastkowego na dziesiętny

musimy skorzystać z poniższego wzoru:

Załóżmy, że chcemy przeliczyć z systemu szesnastkowego na dziesiętny liczbę: 9a0b(16)

Przeliczać z szesnastkowego na dziesietny może na 2 sposoby:
– pierwsza – przedstawiona powyżej –  wymaga “większych” obliczeń ale jest w miarę krótka
– druga – przełożyć liczbę z systemu szesnastkowego na dwójkowy i z tej postaci przeliczać na dziesiętny – ma łatwiejsze obliczenia ale za to ma więcej “rozpisywania”

Aby przeliczyć liczbę z systemu dziesiętnego na szesnastkowy

przydadzą nam się wcześniej wypisane potęgi liczby 16 czyli: 1, 16, 256, 4096, 65536

39435 (10)

Teraz pozostało tylko zapisać poszczególne liczby (wyniki) w odpowiedniej kolejności: 9,10,0,11 i zamienić liczby dziesiętne na ich szesnastkowe odpowiedniki: 9a0b

 

Tagi: