• No results found

Digitala tal och Boolesk algebra

N/A
N/A
Protected

Academic year: 2021

Share "Digitala tal och Boolesk algebra"

Copied!
34
0
0

Loading.... (view fulltext now)

Full text

(1)

Digitala tal och Boolesk algebra

Innehåll

Talsystem och koder

Aritmetik för binära tal

Grundläggande logiska operationer

Logiska grindar

Definitioner i Boolesk algebra

Räknelagar

(2)

Binära talsystemet

 Binärt

Positionssystem

Två symboler används, B = { 0, 1 }

Binära tal gör det lätt att bygga elektronik baserade på elektroniska omkopplare

En algebra utvecklad av Boole gör det lätt att hantera logiska uttryck baserade på binära tal

(3)

 

b N

q

N N

b

s s

s s

S b b

basen i

ra represente att

för krävs

som positioner

antal

=

0 heltal,

positivt

=

basen symboler

antal

symboler mängd

, ,

, , Låt

1 2

1 0

Positionsbaserade talsystem

 Ett generellt positionsbaserat talsystem med

basen b

(4)

Representera positiva heltal

 För positiva heltal:

ex., Decimalt tal

1

0 q i

i ib s N

 

 

 

 

234234

2002 100303410 4 1

10 4

10 3

10 2

234

9 8, , 1,

0,

=

10,

= låt

234

10 10

0 1

2 10

0 0 1

1 2

2 10

S r

b s b

s b

s

(5)

Representera positiva heltal

exempel, Binärt tal (basen 2)

 

 

 

         

                 

  

22 10

1010

 

1010 10 10 10 10 10

2 2

2 2 2

0 1

2 3

2

0 0 1 1 2 2 3 2 3

11 1

2 8 1011

1 1

2 1

4 0

8 1

1011

1 1 10

1 100

0 1000

1 1011

2 1 2 1 2 0 2

1 1011

1 0,

= 2,

= låt

1011

S b

b s b s b s b s

(6)

Representera delar av heltal (eng. Fraction)

 

1 -

-

=

1 2

1

= blir

tillåts som

positioner antal

eller

, basen i

ra represente att

för krävs

som positioner

Antal

= 0 1

basen S

i symboler antal

symboler mängd

, ,

, Låt

p i

i i

r r

b s F

b F

p F b

s s

s

S

(7)

Exempel på decimal tal

 Låt p = 3

(tre positioner till höger om decimalpunkten)

 

 

0 . 6250 . 600 0 . 0200 0 . 005

001 .

0 5

01 .

0 2

1 . 0 6

625 .

0

10 5

10 2

10 6

625 .

0

10

10 10

3 2

1 10

3 3

2 2

1 1

b s b s b

s F

b

(8)

Exempel på Binära ”decimaltal”?

 Låt p = 3

 

 

 

r

     

     

  

2

0101 1 2 0 2 1 2

0101 1 1

2 0 1

4 1 1 8

0101 0100 0 000 0 001

2 1 2 3

2

2 2 2 2

. .

. . . .

(9)

Bas-konvertering

Ett tal med basen b skrivs om som:

En division av N

0

med b ger:

En division av N

1

med b ger

0 1

0 1

2 1

1

0 0

1 1

1 1

0

) (

s b N

s b

s b

s b

s

b s

b s

b s

b s

N

p p

p p

p p

p p

b

N1 s0 Resten = s0 = minst signifikanta siffran

b

N2 s1 Resten = s1 = näst minst signifikanta siffran

(10)

Svar: 57

10

= 111001

2

Procedur for bas-konvertering

Exempel: Omvandla 57

10

till binärt tal

57 / 2 = 28 1

kvot rest

28 / 2 = 14 0

14 / 2 = 7 0

7 / 2 = 3 1

3 / 2 = 1 1

1 / 2 = 0 1

Minst signifikanta biten

(eng. Least Significant Bit)

Mest signifikanta biten

(eng. Most Significant Bit)

(11)

Att tänka på vid omvandling

 Syftet med binär representation är att erhålla tal i ett format som passar digital logik

 Ju större noggrannhet ett binärt tal har desto fler bitar krävs  mer digitala kretsar

 Alla tal i en bas kan INTE representeras

exakt i en annan bas (avrundningsfel)

(12)

Binära, Oktala och Hexadecimala tal

 Det är lätt att konvertera binära tal till andra, mer lättarbetade format genom att gruppera bitar tillsammans och sedan konvertera till lämplig bas

Oktala tal S={ 0, 1, ... , 7 }, basen = 8

3-bits grupper

Hexadecimal S={ 0, ... , 9, A, B, C, D, E, F }, basen = 16

4-bits grupper

(13)

 

8

8 8 2 2 2

1264.4

4 . 4 6 2 1

grupp bitars

- 3 varje Konvertera

100 .

100 110

010 001

grupp) full

(en oktalt tal

ett

att för nollor

två med

ut fyll

1 . 100 110

010 1

unkten decimal"-p

"

från grupper

bitars -

3 i gruppera

1 . 1010110100

N N N N N

Exempel: Binär till Oktal

omvandling

(14)

Exempel: Binär till hexadecimal

 

16

 

H

16 16 2 2 2

2B4.8

2B4.8

8 . 4 B

2

grupp bitars

- 4 varje Konvertera

1000 .

0100 1011

0010

grupp komplett

en

att för nollor

med ut

fyll

1 . 0100 1011

10

unkten decimal"-p

"

från grupper

bitars -

4 i gruppera

1 . 1010110100

N N N N N

(15)

Viktade koder

 Godtycklig vikt kan tilldelas varje position

Binary Coded Decimal (BCD)

8, 4, 2, 1

exempel, 1001 = 8 + _ + _ + 1 = 9

Alla kodord används inte

Enbart 010-910 används

Ej 1010-1510

(16)

Icke-viktade koder

 Cykliska

På varandra följande kodord skiljer sig åt med endast en bit och det gäller också då de ”slår runt”

Gray Code är den vanligaste

(17)

Gray kod

 Fördelar

Enkelt att konstruera för vilket antal bitar som helst

Cyklisk

Unik

(18)

3-bitars Gray kod

Ordning Kodord

0 0 0 0

1 0 0 1

2 0 1 1

3 0 1 0

4 1 1 0

5 1 1 1

6 1 0 1

7 1 0 0

(19)

Alfanumeriska koder

 Alfanumeriska koder representerar både

Decimala siffersymboler

0 - 9

Alfabetets tecken

A – Z, a – z

Övriga skrivbara tecken

T.ex: %, &, ?, *, @

Styrsymboler

Blanksteg, ny rad, etc.

Standardkoder: ASCII, EBCDIC, etc.

(20)

ASCII

 ASCII kodning

American Standard Code for Information Interchange

ASCII-tabell

Ger hexadecimal kod

Rad: minst signifikanta positionen

Kolumn: mest signifikanta positionen

Exempel: ASCII(’C’) = 4316

(21)

S

...

q-bitar som representerar storleken

Negativa tal

 teckenbit

Biten längst till vänster representerar talets tecken

1 negativt

0 positivt

Bitarna till höger om teckenbiten är storleken på talet

(22)

 2 koder för noll

 Skiftning

Ger ej

mult/div med 2,

Tar ej hänsyn till tecknet

Exempel: tal med teckenbit

Decimal s (

storlek

)

2

+3 0 11

+2 0 10

+1 0 01

+0 0 00

-0 1 00

-1 1 01

-2 1 10

-3 1 11

(23)

Två-komplement

 Två-komplement representation

För ett n-bitars tal

är värdet för MSB -2n-1 (istället för +2n-1 )

Övriga bitars värde är samma som för positiva tal

Regler för att utföra två-komplement

Invertera samtliga bitar i talet

Addera 1 till talet

Exempel:

Bilda två-komplement till 8-bitars talet 000100012 (=1710) 00010001

11101110 + 1

11101111 = -1710

(24)

Två-komplement – 3-bitars tal

 En kod för noll

Decimal 2-komp

+3 011

+2 010

+1 001

+0 000

-0 000

-1 111

-2 110

-3 101

-4 100

(25)

Addition och subtraktion

 Exempel:

3 + 2 = ? 0011

0010

0101 = 510

7 - 1 = ?

0111 1111

1 0110 = 610 -1 - 3 = ?

1111 1101

1 1100 = -410

2 - 3 = ? 0010

1101

1111 = -110

(26)

Multiplikation/Division med 2

 Skifta det binära talet ett steg vänster

 Skifta det binära talet ett steg höger

0 0 1 0 0 1 0 0 0

= +2

= +4

1 1 1 0 1 1 0 0 0

= -2

= -4

0 0 1 0

= +4

= +2

0 1 0 0 1 1 0 0

1 1 1 0

= -4

= -2

(27)

Boolesk Algebra

 Historik

George Boole (1815-1864), en engelsk matematiker

visade att logik kan uttryckas som algebraiska ekvationer.

Han gav upphov till vad vi kallar Boolesk algebra.

(1854: An Investigation of the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and Probabilities)

Används idag inom matematik, informationsteori,

switching algebra, grafteori, datorvetenskap och artificiell intelligens.

Edward Huntington: (1874-1952), en amerikansk matematiker som gav Boolesk algebra sina axiom.

Claude Shannon (1916-2001), en amerikansk matematiker som beskrev informationens minsta beståndsdel som 0 eller 1. Han myntade begreppet ’bit’. Han lade grunden till informationsteorin som har haft avgörande betydelse för utvecklingen av

kommunikationssystem.

(28)

Boolesk Algebra – Definitioner

Konstanter

0 (Falsk)

1 (Sann)

Operationer

+ (ELLER)

· (OCH)

(ICKE)

Axiom

0 + 0 = 0 1 · 1 = 1 1 + 1 = 1 0 · 0 = 0

0 + 1 = 1 + 0 = 1 1 · 0 = 0 · 1 = 0 0’ = 1

1’ = 0

(29)

Räknelagar för en variabel

x + x = x x · x = x x + x’ = 1 x · x’ = 0

x + 1 = 1 x · 0 = 0 x + 0 = x x · 1 = x (x’)’ = x

Dessa räknelagar kan enkelt visas utifrån axiomen.

(30)

Räknelagar för flera variabler

 Associativa lagar

x + (y + z) = (x + y) + z x·(y·z) = (x·y)·z

 Kommutativa lagar

x + y = y + x x·y = y·x

 Distributiva lagar

x·(y + z) = x·y + x·z

x + y·z = (x + y)·(x + z)

(31)

Räknelagar för flera variabler

 absorptionslagar

x + x·y = x x·(x + y) = x

 Concensuslagen

x·y + x’·z = x·y + x’·z + y·z

 De Morgans lag

(x + y)’ = x’ · y’

(x·y)’ = x’ + y’

x + x·y = x ·(1 + y) = x ·1 = x

x·(x + y) = x·x + x·y = x + x·y

= x·(1 + y) = x ·1 = x

x + y = x·y

x·y = x + y

Augustus de Morgan

(32)

Grundläggande logiska operationer

Namn/operator Symbol Funktion Logisk operation

OCH, eng. AND .

X Y Z 0 0 0 0 1 0 1 0 0 1 1 1

X Y Z 0 0 0 0 1 1 1 0 1 1 1 1

X Z 0 1 1 0

ELLER, eng. OR +

ICKE, eng. NOT

Z = X • Y

Z = X + Y

Z Z = X’

(33)

Grundläggande logiska operationer

Namn/operator Symbol Funktion Logisk operation

NAND

X Y Z 0 0 1 0 1 1 1 0 1 1 1 0

X Y Z 0 0 1 0 1 0 1 0 0 1 1 0

NOR

XOR

Z = X • Y Z = (X • Y)’

Z = X + Y Z = (X + Y)’

Z = X Y

X Y Z 0 0 0 0 1 1 1 0 1 1 1 0

(34)

SLUT på Föreläsning 1

 Innehåll

Talsystem och koder

Aritmetik för binära tal

Grundläggande logiska operationer

Logiska grindar

Definitioner i Boolesk algebra

Räknelagar

References

Related documents

[r]

[r]

1 Under höstterminens första åtta veckor sparade William 320 kr av sin veckopeng. Genomsnitts- kostnaden för varje person blev 185 kr. I genomsnitt skrev de åtta kort var.

[r]

Skriv alla differenser utanför hörnen på nästa kvadrat.. 4 Håll på så länge

E Den som lagt talet ska nu säga ett nytt tal, till exempel 0,13 som då ska läggas ut av nästa deltagare.. Gruppens mål är att remsan ska fyllas till exakt

Š Det är lätt att konvertera binära tal till andra, mer lättarbetade format genom att gruppera bitar tillsammans och sedan konvertera till lämplig bas. „ Oktala tal S={ 0,

Š Det är lätt att konvertera binära tal till andra, mer lättarbetade format genom att gruppera bitar tillsammans och sedan konvertera till lämplig bas.. „ Oktala tal S={ 0,