• 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)

Copyright Bengt Oelmann

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

=

=

= K

Positionsbaserade talsystem

Š Ett generellt positionsbaserat talsystem med

basen b

(4)

Representera positiva heltal

Š För positiva heltal:

=

=

1

0 q i

i i

b s N

( )

{ }

( )

( )

( 234 234 ) 200 2 100 30 3 4 10 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 K b

b s b

s b

s

Š ex., Decimalt tal

(5)

Representera positiva heltal

Š exempel, Binärt tal (basen 2) ( )

( ) { }

( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

2

) ( )

10 10

10 10

10 10

10 10

10 2 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 då

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 K

(7)

Exempel på decimal tal

Š Låt p = 3 (tre positioner till höger om decimalpunkten)

( )

( )

( 0 0 . . 625 625 ) 6 0 . 600 0 . 1 2 0 . 0 0200 . 01 5 0 0 . 005 . 001

10 5

10 2

10 6

625 .

0

10

10 10

3 2

1 10

3 3

2 2

1 1

+ +

=

• +

• +

=

• +

• +

=

+ +

=

=

− −

− −

bs b s b

s F

b

(8)

Exempel på Binära ”decimaltal”?

Š Låt p = 3

( )

( )

( ) (

2

) (

2

) (

2

)

2 2

3 2

1 2

001 .

0 000

. 0 100

. 0 101

. 0

8 1 1 4 0 1 2 1 1 101

. 0

2 1 2

0 2

1 101

. 0

2

+ +

=

• +

• +

=

• +

• +

=

=

b

(9)

Bas-konvertering

Š Ett tal med basen b skrivs om som:

b

N

1

+ s

0 Resten = s0 = minst signifikanta siffran

b

N

2

+ s

1 Resten = s1 = näst minst signifikanta siffran

Š En division av N 0 med b ger:

0 0

1 1

1 1

0

s b s b s b s b

N =

p

p

+

p

p

+ K + • + •

0 1

2 1

1

)

( s

p

b

p

+ s

p

b

p

+ + sb + s

=

K

0

1

b s

N • +

=

(10)

Svar: 57 10 = 111001 2

Procedur för 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

z

3-bits grupper

„

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

z

4-bits grupper

(13)

Exempel: Binär till Oktal omvandling

1 . 1010110100

2

= N

unkten decimal"-p

"

från grupper

bitars -

3 i gruppera

1 . 100 110

010

2

= 1 N

grupp) full

(en oktalt tal

ett få

att för nollor

två med

ut fyll

100 .

100 110

010

2

= 001 N

grupp bitars

- 3 varje Konvertera

( )

8

8 8

1264.4

4 . 4 6 2 1

=

=

N

N

(14)

Exempel: Binär till hexadecimal

1 . 1010110100

2

= N

unkten decimal"-p

"

från grupper

bitars -

4 i gruppera

1 . 0100 1011

2

= 10 N

grupp komplett

en få

att för nollor

med ut

fyll

1000 .

0100 1011

2

= 0010 N

grupp bitars

- 4 varje Konvertera

( ) (

16

)

H

16 16

2B4.8

2B4.8

8 . 4 B

2

=

=

=

N

N

(15)

Viktade koder

Š Godtycklig vikt kan tilldelas varje position

„

Binary Coded Decimal (BCD)

z

8, 4, 2, 1

z

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

z

Alla kodord används inte

Š

Enbart 0

10

-9

10

används

Š

Ej 10

10

-15

10

(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

z

0 - 9

„

Alfabetets tecken

z

A – Z, a – z

„

Övriga skrivbara tecken

z

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

„

Styrsymboler

z

Blanksteg, ny rad, etc.

„

Standardkoder: ASCII, EBCDIC, etc.

(20)

ASCII

Š ASCII kodning

„

American Standard Code for Information Interchange

„

ASCII-tabell

z

Ger hexadecimal kod

z

Rad: minst signifikanta positionen

z

Kolumn: mest signifikanta positionen

z

Exempel: ASCII(’C’) = 43

16

(21)

S

...

q-bitar som representerar storleken

Negativa tal

Š teckenbit

„

Biten längst till vänster representerar talets tecken

z

1 negativt

z

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

z

är värdet för MSB –2

p-1

(istället för +2

p-1

)

z

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

„

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

z

invertera samtliga bitar i talet

z

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 = 5

10

7 - 1 = ? 0111

1111

1 0110 = 6

10

-1 - 3 = ?

1111 1101

1 1100 = -4

10

2 - 3 = ? 0010

1101

1111 = -1

10

(26)

Multiplikation/Division med 2

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

0 0 1 0 = +2

0 1 0 0

0

= +4

1 1 1 0 = -2 1 1 0 0

0

= -4

0 0 1 0 = +2

0 1 0 0 = +4 1 1 0 0 = -4

1 1 1 0 = -2

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

(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.

Visa att x + x = x Låt x = 1: 1 + 1 = 1 Låt x = 0: 0 + 0 = 0

(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 grindar

Namn/operator Symbol Funktion Logisk operation

OCH, eng. AND .

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

Z = X • Y

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

ELLER, eng. OR +

Z = X + Y

X Z 0 1 1 0

ICKE, eng. NOT

Z Z = X’

(33)

Grundläggande logiska grindar

XOR

X Y Z Z = X Y

0 0 0 0 1 1 1 0 1 1 1 0

Namn/operator Symbol Funktion Logisk operation

NAND

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

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

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

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

(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,