Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [c++]machtsfunctie (https://forum.scholieren.com/showthread.php?t=663560)

Dr HenDre 16-11-2003 19:40

[c++]machtsfunctie
 
ik ben bezig met een prog wat een XOR uitvoert op een encrypted string(binair) met een key(ook binair). Het resultaat is de 3de binair. Nu moet het resultaat worden omgezet in een decimaal, zodat ik daarna daarmee verder kan gaan om het naar ASCII om te zetten. Nu heb ik het volgende(sorry voor de lay-out verneuking )

Code:

//output:
//01110100011010000110010100100000011100000110000101110011011100110111011101101111011100100110010000100000011010010111001100100000011000100110100101101110

#include <iostream>
#include <stdlib.h>

using namespace std;

int macht(int);
int main(void)
{
    unsigned int edata[152] = {1,0,0,1,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,0};
    unsigned int key[152]  = {1,1,1,0,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0};
    unsigned int data[152];

    for(int i=0;i<152;i++)
    {
        if(edata[i]==key[i])
        data[i]=0;
        else       
        data[i]=1;
        cout<<data[i];
    }
    unsigned int decimaal;
    unsigned int sum;
    for(int i=151; i<=0; i--)
    {
      decimaal=data[i]*macht(i);
      sum += decimaal;
    }
    cout<<endl<<endl<<sum<<endl<<endl;
    system("pause");
    return 0;
}

int macht(int i)
{
    int result=1;
    i = 151 - i;
    for(int j=1;j<=i;j++)
    {
        result *= 2;
    }
   
    return result;
}

Voor degene die niet weten hoe je een binair om kan zetten in een decimaal; het gaat als volgt. Stel je hebt het binaire getal 11010

0*2^0 = 0
1*2^1 = 2
0*2^2 = 0
1*2^3 = 8
1*2^4 = 16
----------------- +
26

Dat is dus de decimaal voor 11010. Nu moet ik heel de output opgeslagenin de array data als decimaal getal in sum hebben. Als ik dit zo uitvoer krijg ik 0, volgensmij gaat het fout op het moment dat ik de functie macht aanroep, of in de functie zelf.

Iemand suggesties :(

Screaming Slave 16-11-2003 19:43

#include <math.h>

gebruik gewoon pow?

Dr HenDre 16-11-2003 19:49

jahwel, maar dit is beter voor mn skills ;) Simpele uitwegen ken ik ook :p

Screaming Slave 16-11-2003 19:54

ansi c++ functies gebruiken is goed voor je skills. *kuch* portability *kuch* en uh, sowieso, waarom iets coden wat al voor je gecode is?

Fade of Light 16-11-2003 20:13

Citaat:

Screaming Slave schreef op 16-11-2003 @ 20:54:
ansi c++ functies gebruiken is goed voor je skills. *kuch* portability *kuch* en uh, sowieso, waarom iets coden wat al voor je gecode is?
om beter begrip te krijgen voor war je mee bezig bent...


*kuch* stink ontwerp van algoritme *kuch*

Screaming Slave 16-11-2003 20:19

o, kheb verder niet echt naar de code gekeken, maar het zag er nogal sloppy uit, ja. maar een eigen power functie schrijven helpt dan niet voor het overzicht hoor, integendeel.

*kuch* kut feijen :p *kuch*

Fade of Light 16-11-2003 20:47

Citaat:

Screaming Slave schreef op 16-11-2003 @ 21:19:
*kuch* kut feijen :p *kuch*
aankomend trimester hebben we um weer.... :mad:

eddie 17-11-2003 07:59

je macht functie is niet goed...


Alle tijden zijn GMT +1. Het is nu 09:02.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.