Momenteel ben ik bezig met een programma dat recursief een conversie maakt van decimaal naar binair. Ik raak er alleen echt niet uit. Waarschijnlijk zie ik iets ontzettend voor de hand liggends over het hoofd, maar dat zal blijken.
Een decimaal getal is naar binair om te zetten door het integer getal continue door 2 te delen. De rest geeft het binair bit weer. Als voorbeeld nemen we het getal. 127.
Van onder naar boven wordt het getal 127 door het binaire getal 1111111 gerepresentateerd.
Nu heb ik de volgende recursieve methode ontworpen, dat het binaire getal uit moet spugen. Daarbij moeten de rest waardes aan elkaar geplakt worden. Met deze rest waardes mag dus niet gerekend worden!
Het probleem is dat ik de afzonderlijke berekende rest waardes aan elkaar moet plakken.Integers bieden geen mogelijkheid om er karakters aan toe te voegen. Aan een string kunnen karakters toegevoegd worden. Helaas kan ik geen strings returnen aangezien de methode integers verwacht. Met strings kan namelijk ook niet gerekend worden. Mijn techniek stinkt dus, maar ik ben er wel van overtuigd dat ik op de goede weg zit. Iemand die mij een duwtje in de goede richting kan geven? Ik ben echt de draad kwijt.
Een decimaal getal is naar binair om te zetten door het integer getal continue door 2 te delen. De rest geeft het binair bit weer. Als voorbeeld nemen we het getal. 127.
code:
1
2
3
4
5
6
7
| 127/2 = 63, rest = 1 63/2 = 31, rest = 1 31/2 = 15, rest = 1 15/2 = 7, rest = 1 7/2 = 3, rest = 1 3/2 = 1, rest = 1 1/2 = 0, rest = 1 |
Van onder naar boven wordt het getal 127 door het binaire getal 1111111 gerepresentateerd.
Nu heb ik de volgende recursieve methode ontworpen, dat het binaire getal uit moet spugen. Daarbij moeten de rest waardes aan elkaar geplakt worden. Met deze rest waardes mag dus niet gerekend worden!
code:
1
2
3
4
5
6
7
| int decToBin(int i){
if (i==0)
return 1; (Moet eraan geplakt worden)
else
(Hier wordt de aan elkaar geplakte binaire waarde gemaakt)
return decToBin(i/2)
} |
Het probleem is dat ik de afzonderlijke berekende rest waardes aan elkaar moet plakken.Integers bieden geen mogelijkheid om er karakters aan toe te voegen. Aan een string kunnen karakters toegevoegd worden. Helaas kan ik geen strings returnen aangezien de methode integers verwacht. Met strings kan namelijk ook niet gerekend worden. Mijn techniek stinkt dus, maar ik ben er wel van overtuigd dat ik op de goede weg zit. Iemand die mij een duwtje in de goede richting kan geven? Ik ben echt de draad kwijt.