Hexadecimaal naar binair en decimaal omzetten

Status
Niet open voor verdere reacties.

FleeZz

Nieuwe gebruiker
Lid geworden
27 nov 2007
Berichten
3
Beste,

Ik ben momenteel bezig met een programma dat codes kan converteren vb. binair naar decimaal en binair naar hexadecimaal. Maar ik zit even vast bij het converteren van hexa naar decimaal en binair. Hoe zou ik dat dan moeten doen? vb. eerst van hexa naar decimaal en dan de decimale code * 16^(n) of zijn er andere mogelijkheden. En hoe zou je dat dan doen ;)

Dit is het stuk code dat ik omenteel heb.
#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;

int BINTODEC();
int BINTOHEX();
int HEXTOBIN();
int HEXTODEC();
int END();

void main()
{
char keuze ;
int resultaat=0 , stop = 0 ;

while(stop==0)
{
system("cls");
cout<<"\n Converter programma voor digitale codes: \n\n ";
cout<<"\n Maak je keuze in onderstaand menu: ";
cout<<"\n1: Binair naar Decimaal";
cout<<"\n2: Binair naar Hexadecimaal";
cout<<"\n3: Hexadecimaal naar Binair";
cout<<"\n4: Hexadecimaal naar Decimaal";
cout<<"\n5: Stop\n\n";
keuze=getch();

switch(keuze)
{
case'1': resultaat = BINTODEC(); break;
case'2': resultaat = BINTOHEX(); break;
case'3': resultaat = HEXTOBIN(); break;
case'4': resultaat = HEXTODEC(); break;
case'5': stop=1; cout<<"Je wilt stoppen? -> druk op enter";
}

if (stop!=1)
cout<<"Het resultaat van je bewerking is: "<<resultaat;
getch();
}
}
int BINTODEC()
{
int decimaalgetal=0,BIT1,BIT2,BIT3,BIT4;
cout<<"\n Van BINAIR naar DECIMAAL coderen. ";

cout<<"\n Geef je MSB of 1ste BIT in: ";
cin>>BIT1;
cout<<"\n Geef je 2de BIT in: ";
cin>>BIT2;
cout<<"\n Geef je 3de BIT in: ";
cin>>BIT3;
cout<<"\n Geef je LSB of 4de BIT in: ";
cin>>BIT4;

decimaalgetal=(BIT1*8+BIT2*4+BIT3*2+BIT4*1);

return(decimaalgetal); //Hier werd een aanpassing gedaan
}

int BINTOHEX() //Vanaf hier werd een aanpassing gedaan,
{
int hexadecimaal=0,BIT1,BIT2,BIT3,BIT4;
cout<<"\n Van BINAIR naar HEXADECIMAAL coderen. ";

cout<<"\n Geef je MSB of 1ste BIT in: ";
cin>>BIT1;
cout<<"\n Geef je 2de BIT in: ";
cin>>BIT2;
cout<<"\n Geef je 3de BIT in: ";
cin>>BIT3;
cout<<"\n Geef je LSB of 4de BIT in: ";
cin>>BIT4;

hexadecimaal=(BIT1*8+BIT2*4+BIT3*2+BIT4*1);
cout<<hex<<hexadecimaal;

return(decimaalgetal2); //Hier werd een aanpassing gedaan
}
int HEXTOBIN()
{return(0);}
int HEXTODEC()
{
int decimaalgetal1=0,BIT1,BIT2,BIT3,BIT4;
cout<<"\n Van HEXADECIMAAL naar DECIMAAL coderen. ";

cout<<"\n Geef je MSB of 1ste BIT in: ";
cin>>BIT1;
cout<<"\n Geef je 2de BIT in: ";
cin>>BIT2;
cout<<"\n Geef je 3de BIT in: ";
cin>>BIT3;
cout<<"\n Geef je LSB of 4de BIT in: ";
cin>>BIT4;

char [hexadecimaal1] [decimaal1]=
{
{1,1},
{2,2},
{3,3},
{4,4},
{5,5},
{6,6},
{7,7},
{8,8},
{9,9},
{a,10},
{b,11},
{c,12},
{d,13},
{e,14},
{f,15},
};




return(decimaalgetal1); //Hier werd een aanpassing gedaan
}
int END()
{return(0);} //tot hier.

In het stuk van "HEXTODEC" wou ik een array maken waar je dan de waarde van "a - f" uit kon halen. Maar ik kan daar nog niet goed mee werken.

Dank bij voorbaat :thumb:
FleeZz
 
Om van hexadecimaal naar decimaal te gaan hoef je eigenlijk niks te berekenen.

Code:
cout << dec << 0x14 << endl;

Om van hexadecimaal/decimaal naar binair te gaan kun je iets als onderstaande doen:

Code:
#include <vector>

void convert2bin(long n)
{
    vector<int> v;
    while(n>0){
               v.push_back(n%2);
               n>>=1;
    }
    for(int i = v.size()-1; i >= 0; i--) cout << v[i];
    cout << endl;
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan