Binair Rekenen
- Berichten: 122
Binair Rekenen
Hallo,
Ik heb twee vraagjes en hoop hier een antwoord te vinden.
Weet er iemand hoe je (101101,111)2 - (10010,1)2 oplost (liefst met het 2's-complement).
In welke gevallen moet je de uitkomst van een bewerking in het 2's-complement opnieuw terug omzetten?
Dank bij voorbaat,
Roger
Ik heb twee vraagjes en hoop hier een antwoord te vinden.
Weet er iemand hoe je (101101,111)2 - (10010,1)2 oplost (liefst met het 2's-complement).
In welke gevallen moet je de uitkomst van een bewerking in het 2's-complement opnieuw terug omzetten?
Dank bij voorbaat,
Roger
- Berichten: 5.609
Re: Binair Rekenen
1) Evenveel getallen na de komma hebben door nullen toe te voegenEnergyfellow schreef: ↑ma 31 dec 2012, 13:32
Weet er iemand hoe je (101101,111)2 - (10010,1)2 oplost (liefst met het 2's-complement).
2) De komma weglaten
3) minteken vervangen door een plus teken en het tegengestelde nemen van het tweede getal
4) beide getallen optellen
5) de komma terug invoeren
Terug omzetten naar wat?Energyfellow schreef: ↑ma 31 dec 2012, 13:32
In welke gevallen moet je de uitkomst van een bewerking in het 2's-complement opnieuw terug omzetten?
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
- Berichten: 122
Re: Binair Rekenen
317070,
Stel dat ik het terug naar het decimaal stelsel wil, dan moet ik van mijn resultaat altijd het 2's Complement nemen m.a.w. ongeacht of het getal negatief of positief zal zijn, moet ik het altijd opnieuw omzetten om het decimaal te krijgen?
Misschien nog een klein vraagje, wat is het verschil tussen signed en unsigned bij 2's-Complement (is het het eerste een negatieve waarde en het tweede gewoon een positieve waarde)?
Dank bij voorbaat,
Roger
Dus ik moet niet meer +1 doen nadat ik het complement van het tweede getal heb genomen?317070 schreef: ↑ma 31 dec 2012, 14:51
3) minteken vervangen door een plus teken en het tegengestelde nemen van het tweede getal
Stel dat ik het terug naar het decimaal stelsel wil, dan moet ik van mijn resultaat altijd het 2's Complement nemen m.a.w. ongeacht of het getal negatief of positief zal zijn, moet ik het altijd opnieuw omzetten om het decimaal te krijgen?
Misschien nog een klein vraagje, wat is het verschil tussen signed en unsigned bij 2's-Complement (is het het eerste een negatieve waarde en het tweede gewoon een positieve waarde)?
Dank bij voorbaat,
Roger
- Berichten: 5.609
Re: Binair Rekenen
Ik zei niet het complement, ik zei het tegengestelde.Dus ik moet niet meer +1 doen nadat ik het complement van het tweede getal heb genomen?
Hoe neem je het tegengestelde van een getal in 2's complement? Volgens mij was dat het complement van het getal + of -1 naargelang of het getal positief of negatief is. In dit geval dus het complement+1.
Waarom zou je naar het decimaal stelsel willen? Je moet altijd een getal omzetten als je een getal van binair naar decimaal wil omzetten. Kun je je vraag misschien duidelijker formuleren?Stel dat ik het terug naar het decimaal stelsel wil, dan moet ik van mijn resultaat altijd het 2's Complement nemen m.a.w. ongeacht of het getal negatief of positief zal zijn, moet ik het altijd opnieuw omzetten om het decimaal te krijgen?
Als je zegt dat een binaire reeks signed is, dan kan ze zowel negatieve als positieve waarden voorstellen. Als ze unsigned is enkel positieve waarden. Op zich heeft dat niet zoveel met 2's complement of niet te maken. Wel is het zo dat je bij unsigned nooit een tekenbit hebt.Misschien nog een klein vraagje, wat is het verschil tussen signed en unsigned bij 2's-Complement (is het het eerste een negatieve waarde en het tweede gewoon een positieve waarde)?
Maar mijn antwoorden zijn waarschijnlijk niet zo duidelijk, aangezien ik je vragen ook niet zo duidelijk vind...
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
- Berichten: 122
Re: Binair Rekenen
Dat zou dan moeten worden:
1 0 1 1 0 1 1 1 1
1 0 0 1 0 1 0 0
1 0 1 1 0 1 1 1 1
__0 1 1 0 1 0 1 1
1 1 1 0 1 1 0 1 0
(111011,010)2
Binair:
45,875 - 18,5 = 27,375 maar dat is toch niet hetzelfde als (111011,010)2 = 51,25.
1 0 1 1 0 1 1 1 1
1 0 0 1 0 1 0 0
1 0 1 1 0 1 1 1 1
__0 1 1 0 1 0 1 1
1 1 1 0 1 1 0 1 0
(111011,010)2
Binair:
45,875 - 18,5 = 27,375 maar dat is toch niet hetzelfde als (111011,010)2 = 51,25.
- Berichten: 768
Re: Binair Rekenen
Bij 2's complement ga je er default van uit dat je met signed getallen werkt. Door te kijken naar de eerste (hoogste) bit van een 2's complement getal weet je of dat negatief of positief is: een 1 als eerste bit is een negatief getal, een 0 is een positief getal.Energyfellow schreef: ↑ma 31 dec 2012, 15:02
317070,
Dus ik moet niet meer +1 doen nadat ik het complement van het tweede getal heb genomen?
Stel dat ik het terug naar het decimaal stelsel wil, dan moet ik van mijn resultaat altijd het 2's Complement nemen m.a.w. ongeacht of het getal negatief of positief zal zijn, moet ik het altijd opnieuw omzetten om het decimaal te krijgen?
Misschien nog een klein vraagje, wat is het verschil tussen signed en unsigned bij 2's-Complement (is het het eerste een negatieve waarde en het tweede gewoon een positieve waarde)?
Dank bij voorbaat,
Roger
2's complement bereken je als volgt: alle bits inverteren en 1 optellen bij het bekomen getal. Of, van rechts naar links werkend, alle bits copieren tot en met de eerste 1, en van dan af alle bits inverteren.
In jouw geval:
1 0 1 1 0 1 , 1 1 1
+ 0 0 1 1 0 1, 1 0 0 (zijnde 2's complement van 10010,100, en met 1 extra leading 0)
--------------------------
1 1 1 0 1 1, 0 1 1
zijnde -18,125 - (- 13,5) = - 4,625
Hoop dat dit helpt.
In the beginning, there was nothing. Then he said:"Light". There was still nothing but you could see it a whole lot better now.
- Berichten: 122
Re: Binair Rekenen
Danny,
Ze gaf me twee willekeurige waarden die ik van elkaar moet aftrekken: (101101,111)2 - (10010,1)2.
Moet ik er dan al van uitgaan dat het eerste getal negatief is, nee toch, want we hebben toch maar de unsigned binaire waarde?
Persoonlijk zou ik het naar een 8-delig stelstel plaatsen, op die manier blijft de waarde hetzelfde maar zien we duidelijk dat het twee positieve getallen zijn: (00101101, 111)2 - (00010010,100)2.
Als ik dat dan via het 2's - Complement zou oplossen:
Het tweede getal wordt dan: 00010010,100 -> 11101101,011 -> 11101101,100.
0 0 1 0 1 1 0 1, 1 1 1
1 1 1 0 1 1 0 1, 1 0 0
_________________
0 0 0 1 1 0 1 1, 0 1 1
En we hebben een overflow.
Het geeft ons:
1 + 2 + 8 + 16 = 27
0,25 + 0,125 = 0,375
->27,375
Wat hetzelfde is als ik de waarden omzet naar het decimale stelsel en zo bereken.
Is deze redenering fout?
Ze gaf me twee willekeurige waarden die ik van elkaar moet aftrekken: (101101,111)2 - (10010,1)2.
Moet ik er dan al van uitgaan dat het eerste getal negatief is, nee toch, want we hebben toch maar de unsigned binaire waarde?
Persoonlijk zou ik het naar een 8-delig stelstel plaatsen, op die manier blijft de waarde hetzelfde maar zien we duidelijk dat het twee positieve getallen zijn: (00101101, 111)2 - (00010010,100)2.
Als ik dat dan via het 2's - Complement zou oplossen:
Het tweede getal wordt dan: 00010010,100 -> 11101101,011 -> 11101101,100.
0 0 1 0 1 1 0 1, 1 1 1
1 1 1 0 1 1 0 1, 1 0 0
_________________
0 0 0 1 1 0 1 1, 0 1 1
En we hebben een overflow.
Het geeft ons:
1 + 2 + 8 + 16 = 27
0,25 + 0,125 = 0,375
->27,375
Wat hetzelfde is als ik de waarden omzet naar het decimale stelsel en zo bereken.
Is deze redenering fout?
- Berichten: 5.609
Re: Binair Rekenen
Deze redenering is helemaal correct. De vraag is of je de unsigned binaire waarde hebt gekregen. Danny gaat uit van niet en neemt aan dat de eerste gegeven bit het tekenbit is. Persoonlijk zou ik ook denken dat jouw interpretatie de juiste is, maar ik snap wel waar de verwarring vandaan komt. Misschien is de originele vraag duidelijker over wat er precies gegeven is?Energyfellow schreef: ↑ma 31 dec 2012, 18:46Ze gaf me twee willekeurige waarden die ik van elkaar moet aftrekken: (101101,111)2 - (10010,1)2.
Moet ik er dan al van uitgaan dat het eerste getal negatief is, nee toch, want we hebben toch maar de unsigned binaire waarde?
(...)
Is deze redenering fout?
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
- Berichten: 122
Re: Binair Rekenen
De originele vraag was: Bereken of zet om naar het aangegeven talstelsel: (101101,111)2 - (10010,1)2 = (...)2.
- Berichten: 5.609
Re: Binair Rekenen
Dan lijkt me dat je hem juist hebt.De originele vraag was: Bereken of zet om naar het aangegeven talstelsel: (101101,111)2 - (10010,1)2 = (...)2.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-
- Berichten: 768
Re: Binair Rekenen
Dat is inderdaad het probleem: als je over signed of unsigned spreekt, dan is dat alleen "in the mind of the programmer". (als je dit aan een microprocessor geeft, ziet hij alleen bits natuurlijk). Ik ging er inderdaad van uit dat beide getallen al signed waren, en dan is mijn berekening juist. Als je beide getallen als unsigned bekijkt, zal je inderdaad op een andere uitkomst uitkomen. En dan zal jouw oplossing ook wel juist zijn zoals 317070 al zei.Energyfellow schreef: ↑ma 31 dec 2012, 18:46
Danny,
Ze gaf me twee willekeurige waarden die ik van elkaar moet aftrekken: (101101,111)2 - (10010,1)2.
Moet ik er dan al van uitgaan dat het eerste getal negatief is, nee toch, want we hebben toch maar de unsigned binaire waarde?
Persoonlijk zou ik het naar een 8-delig stelstel plaatsen, op die manier blijft de waarde hetzelfde maar zien we duidelijk dat het twee positieve getallen zijn: (00101101, 111)2 - (00010010,100)2.
Als ik dat dan via het 2's - Complement zou oplossen:
Het tweede getal wordt dan: 00010010,100 -> 11101101,011 -> 11101101,100.
0 0 1 0 1 1 0 1, 1 1 1
1 1 1 0 1 1 0 1, 1 0 0
_________________
0 0 0 1 1 0 1 1, 0 1 1
En we hebben een overflow.
Het geeft ons:
1 + 2 + 8 + 16 = 27
0,25 + 0,125 = 0,375
->27,375
Wat hetzelfde is als ik de waarden omzet naar het decimale stelsel en zo bereken.
Is deze redenering fout?
PS: jouw omzetting naar octaal zal hier niet veel helpen vrees ik echter, want als je de getallen als signed beschouwt, moet je leading 1's gebruiken. Dus als ik jouw eerste getal als negatief beschouw, kan ik het net zo goed omzetten naar octaal als : 11101101, 111. Dus ook hier blijft de regel gelden: signed of unsigned is in the mind of the programmer.
In the beginning, there was nothing. Then he said:"Light". There was still nothing but you could see it a whole lot better now.
- Berichten: 400
Re: Binair Rekenen
Mijn wiskunde is niet van zo'n hoog nivo dat ik weet waar de 2 voor staat na de komma.
Maar als je binair aan het rekenen bent , mag je de 2 dan wel gebruiken, of moet je dan 10 schrijven ( binair 2).
Leg ook even uit voor deze dummy 2s-complement.
Maar als je binair aan het rekenen bent , mag je de 2 dan wel gebruiken, of moet je dan 10 schrijven ( binair 2).
Leg ook even uit voor deze dummy 2s-complement.
- Berichten: 122
Re: Binair Rekenen
jadatis schreef: ↑ma 07 jan 2013, 20:41
Mijn wiskunde is niet van zo'n hoog nivo dat ik weet waar de 2 voor staat na de komma.
Maar als je binair aan het rekenen bent , mag je de 2 dan wel gebruiken, of moet je dan 10 schrijven ( binair 2).
Leg ook even uit voor deze dummy 2s-complement.
Als ik me niet vergis is (0,2)10 = (0,0011001100...)2.
- Berichten: 2.609
Re: Binair Rekenen
Die 2 in de notatie (100)2 dient juist om aan te geven dat het getal in basis 2 staat en dus niet 100 is, maar 4.jadatis schreef: ↑ma 07 jan 2013, 20:41
Maar als je binair aan het rekenen bent , mag je de 2 dan wel gebruiken, of moet je dan 10 schrijven ( binair 2).
two's complement is een notatie om negatieve getallen binair te kunnen voorstellen. Kijk ook eens hier. Er zijn andere manieren om dit te doen (bv sign bit, one's complement) maar sommige notaties maken rekenwerk eenvoudiger in bepaalde situaties.
- Berichten: 400
Re: Binair Rekenen
Dan snap ik ook waarom dit onderwerp bij programeren staat en niet bij wiskunde.
Het artikel van de link geeft de mogelijke notatie voor negatieve getallen aan, maar dan is mij niet duidelijk hoe het onderscheid wordt gemaakt tussen een klein negatief getal en een groot positief getal.
(0)2 en (1)2 worden omgewisseld en aan het eind (1)2 bij opgeteld .
Ik denk dat dat hetzelfde is als ( 2)10 -(3)10 = (-1)10 wat dan als getal ( 9999)10 weergegeven wordt, en dat dit bij binair rekenen door maar 2 cijfers makkelijk, werkt met de nullen en eenen omwisselen.
Maar het onderscheid tussen klein neg en groot pos blijft me dwarszitten. dus hoe ziet de computer bij 8 digits het verschil tussen (-1)10 en ( 254)10. beide tonen ( 11111110)2 , vergeef me als ik er eentje naast zit, het gaat om het principe.
Het artikel van de link geeft de mogelijke notatie voor negatieve getallen aan, maar dan is mij niet duidelijk hoe het onderscheid wordt gemaakt tussen een klein negatief getal en een groot positief getal.
(0)2 en (1)2 worden omgewisseld en aan het eind (1)2 bij opgeteld .
Ik denk dat dat hetzelfde is als ( 2)10 -(3)10 = (-1)10 wat dan als getal ( 9999)10 weergegeven wordt, en dat dit bij binair rekenen door maar 2 cijfers makkelijk, werkt met de nullen en eenen omwisselen.
Maar het onderscheid tussen klein neg en groot pos blijft me dwarszitten. dus hoe ziet de computer bij 8 digits het verschil tussen (-1)10 en ( 254)10. beide tonen ( 11111110)2 , vergeef me als ik er eentje naast zit, het gaat om het principe.