Sida 1 av 1

Addition av binära tal!

Postat: 17 januari 2011, 15:22:17
av Rogga
Hej!

Jag håller på med binära tal men har fastnat på additon av binära tal..

Om jag tex. har dom binära talen 1011 och 111, hur får man ut rätt resultat då?

Re: Addition av binära tal!

Postat: 17 januari 2011, 15:23:41
av sodjan
Menar du rent matematiskt ?
Eller hur man löser det med elektronik ?

Om det gäller det första :
http://en.wikipedia.org/wiki/Binary_num ... m#Addition

Re: Addition av binära tal!

Postat: 17 januari 2011, 15:27:43
av LHelge
Du gör precis som med vanlig addition.
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 med 1 i carry

sammanfaller bra med XOR

Kod: Markera allt

1 1 1 1 
  1 0 1 1
+   1 1 1
---------
1 0 0 1 0

Re: Addition av binära tal!

Postat: 17 januari 2011, 15:28:25
av Rogga
Ja matematiskt, ska kolla upp länken, tackar!

Re: Addition av binära tal!

Postat: 17 januari 2011, 16:07:21
av Rogga
Det är de där med minnessiffran ja inte fatta riktigt, förstår inte riktigt hur man ska räkna den som?

Re: Addition av binära tal!

Postat: 17 januari 2011, 16:24:04
av sodjan
Precis som vanligt.
Du vet väl vad en "minnessiffra" är ?
Det är det första man lär sig i ettan ungefär... :-)

Hur gör du när du adderar t.ex 15+18 ?
Får du inte en minnessiffra då också ?

Re: Addition av binära tal!

Postat: 17 januari 2011, 16:29:45
av Andax
Det är på samma sätt som när du lägger ihop tal i vanliga talsystemet, om summan blir större än 9 i vanliga talsystemet så får man föra över 10-tal siffran till summationen i nästa position via en minnessiffra.

Lägger du ihop siffrorna binärt för en position så har du fallen som LHelge skrev:

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 med 1 i carry (carry = minnessiffra)

För nästa position i summationen så följer den tabellen ovan om du inte hade en minnessiffra annars får man ju summan av tre tal:

1 + 0 + 0 = 1
1 + 1 + 0 = 0 och 1 i minne
1 + 0 + 1 = 0 och 1 i minne
1 + 1 + 1 = 1 och 1 i minne


jämför när du lägger ihop t.ex. 7 + 8 = 15 dvs 5 och 1 i minne (till nästa hörge position) i vanliga talsystemet.

Re: Addition av binära tal!

Postat: 17 januari 2011, 17:21:14
av prototypen
Det är ju någon som har som stående text att det finns "10 sorters människor, de som förstår binära tal och de som inte förstår binära tal"

1+1 är ju 2, men 2 går inte in i binära talsystemet (talsystem med basen 2) så 2= 10 (ett noll) i binära systemet.
(Hur i hela friden ska man förklara detta då man inte kan gestikulera och peka?)

Protte

Re: Addition av binära tal!

Postat: 17 januari 2011, 17:34:54
av jesse
protte: :waving: 1100011 :whoho:0001100100 :ajabaja: 0001111001 :wacko: 0100 :wall: 100 :bravo: 001 :shock: 01010 :lie: 111 :rofl 000 :waving: 00101 :happy: 110010 :roll: 001001 :lol: 1111

Det går väl inte att missuppfatta :mrgreen:

1 + 1 = 10 (1+1 = 2)
10+10 = 100 (2+2=4)

11 + 11 = 110 (3+3=6)
111 + 1 = 1000 (7+1 = 8 )

1011 + 111 = 10010 (11+7 = 18)

Re: Addition av binära tal!

Postat: 17 januari 2011, 17:53:14
av LHelge
prototypen skrev:Det är ju någon som har som stående text att det finns "10 sorters människor, de som förstår binära tal och de som inte förstår binära tal"

...
Tror till och med att det finns någon som nördat till det lite extra med att det finns 11 sorters människor, de som förstår graykod och de som inte förstår graykod.

Re: Addition av binära tal!

Postat: 17 januari 2011, 19:20:21
av Walle
Finns flera varianter, typ:
Faktum är att det finns 11 typer av människor. De som inte förstår binärt och de som förstår binärt men kan inte räkna.

För att ö.h.t. ha en chans att förså binära tal måste man börja med att förstå konceptet talbas. Vårt decimala system har talbasen tio (kind of a dead giveaway i namnet), d.v.s. varje position åt vänster är värd tio gånger så mycket. Det binära talsystemet har talbasen två (också en dead giveaway), vilket kort och gott betyder att varje position åt vänster är värd två gånger så mycket. Dessutom innebär det också att en position bara kan ha två värden, 0 eller 1. I det decimala systemet kan varje position ha tio värden, 0-9.

Alltså, två gånger så mycket för varje steg åt vänster. Så:

0000 0001 binärt motsvarar 1 decimalt.
0000 0010 binärt motsvarar 2 decimalt.
0000 0100 = 4
0000 1000 = 8
0001 0000 = 16
0010 0000 = 32
0100 0000 = 64
1000 0000 = 128

om vi således ska addera t.ex. de binära talen 0110 0101 (decimalt 101) och 0011 1101 (decimalt 61) så får vi:

0110 0101
+0011 1101
=1010 0010

Ska vi ta det i steg från höger till vänster så blir det (decimalt inom parentes. Jag har fetmarkerat alla minnessifrror (skrivit "carry" för att göra det kortare) för att det ska bli något tydligare. Kolla också på sanningstabellen ovan med vad varje position är värd:

1 + 1 = 0 + carry (1 + 1 = 0 + 2)
0 + 0 + carry = 1 (0 + 0 + 2 = 2)
1 + 1 = 0 + carry (4 + 4 = 0 + 8)
0 + 1 + carry = 0 + carry (0 + 8 + 8 = 0 + 16)
0 + 1 + carry = 0 + carry (0 + 16 + 16 = 0 + 32)
1 + 1 + carry = 1 + carry (32 + 32 + 32 = 32 + 64)
1 + 0 + carry = 0 + carry (64 + 0 + 64 = 0 + 128)
0 + 0 + carry = 1 (0 + 0 + 128 = 128)