informatika / … o číslech
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
KIT.PEF.CZU
InformatikaInformatika / … o číslech/ … o číslech(čísla typu integer - celá čísla)
Celá čísla – Celá čísla – un/signed un/signed integerinteger ve dvojkové soustavě jsou celá čísla vyjádřena
mocninnou řadou se základem 2 k dispozici jsou tedy pouze znaky 0 a 1
ty lze využít např. k zobrazení čísel { 0,1, …(2n -1) }
unsigned – všechny bity mají význam 2i
n-bitový obrazec poskytuje 2n různých kombinací
nebo např. { (-2n-1) , …, -1, 0, 1, …, (2n-1-2) , (2n-1-1) }
unsigned integer - neznaménkový tvar celého čísla
signed integer - znaménková reprezentace celého čísla
signed – horní bit signalizuje znaménko
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
0000
0001+ 1 Předpokládejme, že pro uložení celého
čísla vymezíme paměťový prostor o velikosti 4 bity
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010+ 1
IntegerInteger – čtyřbitový model – čtyřbitový model
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
Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
000000010010
0011+ 1
IntegerInteger – čtyřbitový model – čtyřbitový model
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
Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
0000000100100011
0100+ 1
IntegerInteger – čtyřbitový model – čtyřbitový model
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
Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001001000110100
0101+ 1
IntegerInteger – čtyřbitový model – čtyřbitový model
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
Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
000000010010001101000101
0110+ 1
IntegerInteger – čtyřbitový model – čtyřbitový model
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
Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity
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
000000010010001101000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
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
Předpokládejme, že pro uložení celého čísla vymezíme paměťový prostor o velikosti 4 bity
Přenos může způsobit, že součet není v daném počtu bitů zobrazitelný
V takovém případě hovoříme o přetečení
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
000000010010001101000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
000000010010001101000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
000000010010001101000101011001111000100110101011110011011110111100001
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
0000 00010010001101000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010001101000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010 001101000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
01000101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
011001111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
0111
1000100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
100110101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
10101011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011110011011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
11011110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
111100001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111
00001
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111
IntegerInteger – čtyřbitový model – čtyřbitový model00001
00011
00101
00111
přetečení
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
signed – horní bit signalizuje znaménko
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111 00011
00101
00111
00001000010
000110
001010
… atd. stále dokola
přetečení
IntegerInteger – čtyřbitový model – čtyřbitový model
00001
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111
unsigned – všechny bity mají význam 2i
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
00001
0000
0
1111
15111014
1101 13
1100 12
111011
101010
1001
9
1000
80111
7 01106
01015
01004
00113
00102
0001
1
IntegerInteger – čtyřbitový model – čtyřbitový model
unsigned – všechny bity mají význam 2i
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
111100001
01
2
3
4
5
6789
10
11
12
13
1415
přetečení nechceme(výsledek chceme znát jednoznačně)
Unsigned IUnsigned Integernteger
unsigned – všechny bity mají význam 2i
00000001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111
01
2
3
4
5
6789
10
11
12
13
1415
přetečení nechceme(výsledek chceme znát jednoznačně)
Dostáváme se do situace, kdy bitový obrazec značí čísla 0 až 2n-1
IntegerInteger – čtyřbitový model – čtyřbitový model
signed – horní bit signalizuje znaménko
0111
7
1001
-7
1000
1010-6
01106
1011 -5 01015
1100 -4 01004
001131101 -3
1110-2
1111
-1 00102
0001
1
0000
0
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
IntegerInteger – čtyřbitový model – čtyřbitový model
signed – horní bit signalizuje znaménko
0111
7
1001
-7
1000
1010-6
01106
1011 -5 01015
1100 -4 01004
001131101 -3
1110-2
1111
-1 00102
0001
1
0000
0
-8
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
Signed Signed IntegerInteger
signed – horní bit signalizuje znaménko
0111
7
1001
-7
1000
1010-6
01106
1011 -5 01015
1100 -4 01004
001131101 -3
1110-2
1111
-1 00102
0001
1
0000
0
-8
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
můžeme však chtít počítat i se zápornými čísly
Signed Signed IntegerInteger Unsigned Unsigned IntegerInteger
signed – horní bit signalizuje znaménko
011110011000
1010 0110
1011 0101
1100 0100
00111101
1110
1111
0010
00010000 0000
0001
0010
0011
0100
0101
0110
01111000
1001
1010
1011
1100
1101
1110
1111
7-7-6 6
-5 5
-4 4
3-3
-2-1
21
0
-8
01
2
3
4
5
6789
10
11
12
13
1415
unsigned – všechny bity mají význam 2i
stejné kombinace mohou mít různý význam
dotazy?dotazy?