390 likes | 563 Views
Informatika / … o číslech. (čísla typu integer - celá čísla). unsigned – všechny bity mají význam 2 i. signed – horní bit signalizuje znaménko. Celá čísla – un/signed integer. ve dvojkové soustavě jsou celá čísla vyjádřena mocninnou řadou se základem 2
E N D
Informatika/ … o číslech (čísla typu integer - celá čísla) KIT.PEF.CZU
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Celá čísla – un/signed integer • ve dvojkové soustavě jsou celá čísla vyjádřena mocninnou řadou se základem 2 • k dispozici jsou tedy pouze znaky 0 a 1 • n-bitový obrazec poskytuje 2n různých kombinací ty lze využít např. k zobrazení čísel { 0,1, …(2n -1) } unsigned integer - neznaménkový tvar celého čísla nebo např. { (-2n-1) , …, -1, 0, 1, …, (2n-1-2) , (2n-1-1) } signed integer - znaménková reprezentace celého čísla
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 + 1 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001 + 1 0010 • 4-bitový obrazec poskytuje 24= 16 různých kombinací • Sečtením dvou jedniček odpovídajících stejnému řádu (stejné mocnině dvou) dojde k přenosu do vyššího řádu
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001 0010 + 1 0011 • 4-bitový obrazec poskytuje 24= 16 různých kombinací • Sečtením dvou jedniček odpovídajících stejnému řádu (stejné mocnině dvou) dojde k přenosu do vyššího řádu
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001 0010 0011 + 1 0100 • 4-bitový obrazec poskytuje 24= 16 různých kombinací • Sečtením dvou jedniček odpovídajících stejnému řádu (stejné mocnině dvou) dojde k přenosu do vyššího řádu
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001 0010 0011 0100 + 1 • 4-bitový obrazec poskytuje 24= 16 různých kombinací 0101 • Sečtením dvou jedniček odpovídajících stejnému řádu (stejné mocnině dvou) dojde k přenosu do vyššího řádu
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001 0010 0011 0100 0101 • 4-bitový obrazec poskytuje 24= 16 různých kombinací + 1 0110 • Sečtením dvou jedniček odpovídajících stejnému řádu (stejné mocnině dvou) dojde k přenosu do vyššího řádu • Přenos může způsobit, že součet není v daném počtu bitů zobrazitelný
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity 0001 0010 0011 0100 0101 • 4-bitový obrazec poskytuje 24= 16 různých kombinací 0110 0111 1000 • Sečtením dvou jedniček odpovídajících stejnému řádu (stejné mocnině dvou) dojde k přenosu do vyššího řádu 1001 1010 1011 1100 • Přenos může způsobit, že součet není v daném počtu bitů zobrazitelný 1101 1110 1111 • V takovém případě hovoříme o přetečení 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0011 0010 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0100 0101 0011 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0101 0011 0110 0111 1000 0100 1001 1010 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0110 0111 1000 0100 1001 1010 0101 1011 1100 1101 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0111 1000 0100 1001 1010 0101 1011 1100 1101 0110 1110 1111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 1000 0100 1001 1010 0101 1011 1100 1101 0110 1110 1111 0111 1 0000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 1001 1010 0101 1011 1100 1101 0110 1110 1111 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 1010 0101 1011 1100 1101 0110 1110 1111 1001 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 0101 1011 1100 1101 1010 0110 1110 1111 1001 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 0100 1011 0101 1100 1101 1010 0110 1110 1111 1001 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 0011 1100 0100 1011 0101 1101 1010 0110 1110 1111 1001 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 0010 1101 0011 1100 0100 1011 0101 1010 0110 1110 1111 1001 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 0001 1110 0010 1101 0011 1100 0100 1011 0101 1010 0110 1111 1001 0111 1 0000 1000
unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 1111 0001 1110 0010 1101 0011 1100 0100 1011 0101 1010 0110 1001 0111 1 0000 1000
1 1 1 1 0011 0010 0001 0000 unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • přetečení 1111 0001 1110 0010 1101 0011 1100 0100 1011 0101 1010 0110 1001 0111 1000
10 10 0001 0000 10 0010 1 1 1 1 0010 0011 0001 0000 unsigned – všechny bity mají význam 2i signed – horní bit signalizuje znaménko Integer – čtyřbitový model 0000 • přetečení 1111 0001 1110 0010 1101 0011 1100 0100 1011 0101 … atd. stále dokola 1010 0110 1001 0111 1000
0000 1111 0001 1110 0010 1101 0011 1100 0100 1011 0101 1010 0110 1001 0111 1000 unsigned – všechny bity mají význam 2i Integer – čtyřbitový model 1 0000
0000 0000 1111 1111 0001 0001 0 15 1 1110 1110 0010 0010 14 2 1101 1101 3 0011 0011 13 1100 1100 12 4 0100 0100 11 5 1011 1011 0101 0101 10 6 9 7 1010 1010 0110 0110 8 1001 1001 0111 0111 1000 1000 unsigned – všechny bity mají význam 2i Integer – čtyřbitový model 1 0000
1 0000 unsigned – všechny bity mají význam 2i Integer – čtyřbitový model 0000 • přetečení nechceme (výsledek chceme znát jednoznačně) 1111 0001 0 15 1 1110 0010 14 2 1101 3 0011 13 1100 12 4 0100 11 5 1011 0101 10 6 9 7 1010 0110 8 1001 0111 1000
unsigned – všechny bity mají význam 2i Unsigned Integer 0000 • přetečení nechceme (výsledek chceme znát jednoznačně) 1111 0001 0 15 1 1110 0010 14 2 1101 3 0011 13 1100 12 4 0100 • Dostáváme se do situace, kdy bitový obrazec značí čísla 0 až 2n-1 11 5 1011 0101 10 6 9 7 1010 0110 8 1001 0111 1000
0000 1111 0001 0 -1 1 1110 0010 -2 2 1101 3 0011 -3 1100 -4 4 0100 -5 5 1011 0101 -6 6 -7 7 1010 0110 1001 0111 1000 signed – horní bit signalizuje znaménko Integer – čtyřbitový model • můžeme však chtít počítat i se zápornými čísly • I zde chceme jednoznačný výsledek. Proto musíme kolizi mezi kladnými a zápornými čísly zabránit
0000 1111 0001 0 -1 1 1110 0010 -2 2 1101 3 0011 -3 1100 -4 4 0100 -5 5 1011 0101 -6 6 -7 7 1010 0110 -8 1001 0111 signed – horní bit signalizuje znaménko Integer – čtyřbitový model • můžeme však chtít počítat i se zápornými čísly • Pro největší záporné číslo vznikne potíž: neexistuje k němu opačné číslo 1000
signed – horní bit signalizuje znaménko Signed Integer • můžeme však chtít počítat i se zápornými čísly 0000 1111 0001 0 -1 1 1110 0010 -2 2 1101 3 0011 -3 • Nyní můžeme chápat bitové obrazce např. jako čísla -8 až +7 tedy -23 až 23-1, -2(n-1) až 2(n-1)-1 1100 -4 4 0100 -5 5 1011 0101 -6 6 -7 7 1010 0110 -8 1001 0111 1000
0000 0000 1111 0001 1111 0001 0 0 -1 1 15 1 1110 0010 1110 0010 -2 2 14 2 3 1101 0011 1101 0011 -3 3 13 4 4 -4 1100 0100 1100 0100 12 -5 5 11 5 1011 0101 1011 0101 -6 6 10 6 -7 7 9 7 1010 0110 1010 0110 -8 8 1001 0111 1001 0111 1000 1000 signed – horní bit signalizuje znaménko unsigned – všechny bity mají význam 2i Signed IntegerUnsigned Integer stejné kombinace mohou mít různý význam