C++ Decimaal naar binair omrekenen

Pagina: 1
Acties:
  • 266 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

Anoniem: 106252

Topicstarter
Hallo,

Ik heb voor school de opdracht gekregen een c++ script te schrijven dat een decimale invoer omrekend naar een binair uitvoer. Het is me gelukt decimaal om te rekenen naar binair.
De uitover is op dit moment zo:

65/2 --> 1
32/2 --> 0
16/2 --> 0
8/2 --> 0
4/2 --> 0
2/2 --> 0
1/2 --> 1

Nu wil ik graag dat de 1'tjes en 0'etjes achter elkaar worden weergegeven in de uitvoer dus: 1000001

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h> 
#include <stdio.h> 

void main(void) 
{ 
    int getal, rest; 

    cout <<"Typ een decimaal getal in: "; 
    cin>> getal; 
    cout << '/n'; 

    do { 

        rest=getal%2; 
        getal=getal/2; 

        cout <<"De rest van gedeelde getal door 2 is:  "<<rest<<endl; 

    }while (getal>0); 
}


Kan iemand me hier mee helpen? Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 05-06 22:44

Janoz

Moderator Devschuur®

!litemod

Nu krijg je alles onder elkaar.. Als je nu je tekst eens voor het do lusje en de endl; na het lusje zet?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 04-06 22:27

Maasluip

Frontpage Admin

Kabbelend watertje

Verplaats in dit programmatje de cout << endl eens naar buiten de do..while en observe....

Signatures zijn voor boomers.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:25
Met alleen dat kom je er natuurlijk niet.

Je moet iedere keer je nieuwe rest concatten aan het resultaat dat je al had.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Anoniem: 106252

Topicstarter
@Janoz & maasluip, als ik dit doe krijg ik alleen de laaste deling ( 0 of 1 )
@whoami, hoe doe ik dat dan? Excuse heb nog niet veel ervaring met c++

Acties:
  • 0 Henk 'm!

Anoniem: 82791

Ik zou de uitkomst eerst in een array zetten, en dan pas weergeven (of natuurlijk beide)

Acties:
  • 0 Henk 'm!

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 09:32

BoAC

Memento mori

Anoniem: 106252 schreef op 17 februari 2004 @ 16:28:
@Janoz & maasluip, als ik dit doe krijg ik alleen de laaste deling ( 0 of 1 )
@whoami, hoe doe ik dat dan? Excuse heb nog niet veel ervaring met c++
Janoz bedoeld:
C++:
1
2
3
4
5
6
7
8
9
10
cout << "De rest van gedeelde getal door 2 is:  ";
do { 

        rest=getal%2; 
        getal=getal/2; 

        cout << rest;

}while (getal>0); 
cout << endl; 


Maar waarom gebruik je niet bitwise AND?

ala:
C++:
1
2
3
4
5
6
7
8
9
10
11
    int i = 1;
    int j = 78923;   // je invoer
    while (i <= j) {
        if ((i & j) == i) {
            cout << "1";
            j -= i;
        } else {
            cout << "0";
        }
        i *= 2;
    }

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 27-05 16:00

curry684

left part of the evil twins

Mjah als het nu de eerste keer was dat dit langskwam okee... maar dit is wel ERG VAAK behandeld...

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.