Informatika / … o číslech

Post on 22-Jan-2016

67 views 0 download

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 Presentation

transcript

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?