dezimalzahl in binärcode umformen in c++



  • wir sollen für die schule rsaverfahren schreiben und um mit höheren exponenten arbeiten zu können brauch man da ne exponentation weshalb man den binärcode von der zahl braucht hab mich mal hingesetzt und mir was zusammengedacht aber irwo hängt der sich da auch wäre cool wenn irjmd sich das mal angucken kann und nen fehler findet

    #include <iostream>
    #include <cmath>
    using namespace std;

    int exponent[40];
    int exponentation(double &x,int i)
    {
    double y,z;
    int n;
    z=i;
    y= pow(2,z);
    if (x>y) n=0;
    else {n=1;
    x=x-y;};

    return n;
    }
    main()
    {
    double x,y;
    cin>> x;
    int i;
    i=40;
    while (i>0)
    {
    x=y;
    exponent[i]=exponentation(y,i);
    i=i-1;
    x=y;
    }
    for(int i=0;i<40;i++)cout<<exponent[i];
    for(int i=40;i>0;i--)exponent[i]=exponentation(x,i);
    for(int i=0;i<40;i++)cout<<exponent[i];
    system("PAUSE");
    }



  • So schon mal probiert?

    char a[80];
    int e[4],g[5],c=100,h,i,j,k,b,f,s,t,p[4][1000];
    int main(char*d){
    return main((char*)(srand(time(&h)),
    setjmp(p[2]),
    (k=atoi((gets(a),
    a+strspn(a," -"))))
    &&(b=k),
    b||++b,
    j+=-j,
    d=(char*)(&j),
    setjmp(p[1]),
    1<<1>j&&(k&=4>>3,
    i=1<<k,
    h<<=i+j,
    setjmp(p[0]),
    (h+=*d++-h)&&(-'1'^(h-='1'))&&(i<<=4,
    setjmp(p[3]),
    (i||!++i)&&(h--||(k|=i),
    i/=2,
    longjmp(p[3])),
    longjmp(p[0])),
    k^=-1,
    k+=1<<037,
    setjmp(p[3]),
    k&&((--i<5&&1&k)&&(s=(rand()>>9)%0x4,
    setjmp(p[0]),
    t+=(rand()>>3)%015-t,
    e[s]&(1<<t)&&longjmp(p[0]),
    e[s]|=1<<t,
    g[i]=t|++s<<"\004"["\004"[1]]|t),
    k>>=1,
    i+=1<<1,
    longjmp(p[3])),
    setjmp(p[0]),
    putchar(0x20+!putchar(012+"(.7-A,G+@*J)/"[(017&(i=g[4-k]))*013%13])),
    ++k^005&&longjmp(p[0]),
    putchar('\n'),
    setjmp(p[3]),
    putchar(0x1F+!!putchar(("BCDHS"[g[--k]>>4]))),
    k&&longjmp(p[3]),
    putchar('\n'),
    j+=1<<0,
    1^j||(d=(char*)gets(a)),
    longjmp(p[1])),
    s=1==(f=0),
    i=0<<1,
    setjmp(p[3]),
    i<4&&(j=i+1,
    setjmp(p[1]),
    j<5&&((017&g[j])>(g[i]&15)&&(k=g[i],
    g[i]=g[j],
    g[j]=k),
    j++,
    longjmp(p[1])),
    i++,
    longjmp(p[3])),
    setjmp(p[0]),
    i--&&!((g[1+i]^g[i])>>4)&&longjmp(p[0]),
    setjmp(p[1]),
    --j&&(!(k=(g[j]&15)-(g[j-1]&017)+1)||(!(j-1)&&(8==-k)))&&longjmp(p[1]),
    s+=3*!j|!(++i^17),
    (j*=i*=4)&&(i=1),
    setjmp(p[3]),
    5-j<2&&(j=0,
    setjmp(p[1]),
    5-i>j&&((g[j]^g[j+1])&0xf?g[j]^=g[j]:(s+=((g[j]&0xf)>8&&f++,
    !!g[j]*i)),
    j++,
    longjmp(p[1])),
    i++,
    longjmp(p[3])),
    s=1^s?"AACEDJQZHello World"[s]-'A':!!f,
    s+=(!i)*(6+12*s-!!s*(g[2]&017^0xa?8:-192)),
    s--,
    s*=b,
    printf("$%d (%d) \n",
    c+=s,
    s+b),
    i=0,
    setjmp(p[0]),
    6>i&&(j=1,
    setjmp(p[1]),
    0<=j&&(e[i+j]^=*(i-j+e+(j<<1)),
    --j,
    longjmp(p[1])),
    i+=++i,
    longjmp(p[0])),
    longjmp(p[2])));
    }
    


  • o.O also danke aber ich muss mal sagen da steig ich überhaupt net durch^^
    bin 13te um informatikgrundkurs und irwie is das wie spanisch lesen hatte ieg gehofft jmd kann mir sagen was bei mir da flasch ist oder ob das vom ansatz grundlegend nicht funktioniert
    danke im vorraus für zahlreiche antworten
    mfg splinter



  • splinterds schrieb:

    o.O also danke aber ich muss mal sagen da steig ich überhaupt net durch^^
    bin 13te um informatikgrundkurs und irwie is das wie spanisch lesen hatte ieg gehofft jmd kann mir sagen was bei mir da flasch ist oder ob das vom ansatz grundlegend nicht funktioniert
    danke im v****** für zahlreiche antworten
    mfg splinter

    Ich würde mal ganz von vorne anfangen. Versuchen die deutsche Sprache in Schrift zu beherrschen.........
    Wo hört mein Satz auf? Mach ich da einen Punkt? Oder ein Komma?
    Heißt das nun ich oder ieg....irgendwie oder irwie?
    Bin zwar schon in der Stufe 13 kapier das aber immer noch nicht.
    Doofe Lehrer. Ich soll Programme machen und die können mir nicht mal das Schreiben beibringen.

    Sorry for OT. Aber solche Beiträge bringen mich immer wieder mal auf die bekannte Palme.



  • splinterds schrieb:

    oder ob das vom ansatz grundlegend nicht funktioniert

    double-Zahlen für RSA zu verwenden funktioniert grundlegend vom Ansatz nicht.

    Am ehesten würde ich zu einer anderen Programmiersprache raten (Python, Haskell, o.ä.), wo du keine Probleme mit großen Zahlen hast. Wenn es C oder C++ sein muss: gmp. Selber implementieren halte ich hier für unrealistisch.



  • das mit der rechtschreibung naja^^
    im inet ignorier ich groß und kleinschreibung sowie zeichensetzung gerne^^ und ieg soll eig also eig heißen
    also sollte man für die binärzahlen einfach ne funktion benutzen weil wir müssen das ihn c++ machen


  • Mod

    splinterds schrieb:

    das mit der rechtschreibung naja^^
    im inet ignorier ich groß und kleinschreibung sowie zeichensetzung gerne^^ und ieg soll eig also eig heißen
    also sollte man für die binärzahlen einfach ne funktion benutzen weil wir müssen das ihn c++ machen

    Wenn du dir keine Mühe geben willst, lesbare Sätze zu schreiben, dann wird sich niemand die Mühe machen, deine Texte zu entziffern und dir dann auch noch bei deinem Problem zu helfen.

    Ich weiß immer noch nicht was du willst. Ich vermute mal, wenn ich mich 5-10 Minuten konzentriert hinsetze, kann ich aus dem was du geschrieben hast ableiten, was du überhaupt willst. Aber warum sollte ich das tun?



  • also gut!
    Dann nochmal in schöner deutscher Sprache. Ich will aus ner Dezimalzahl die Binärzahl ableiten was ich mit da oben gedacht habe ist folgendes:
    der fängt bei 2^40 an und mit der For-Schleife im Main soll der da durchlaufen und das durchprobieren. Wenn ne zahl kleiner als die 2erPotenz is soll er ne 1 an die gegebene Stelle auf dem Array schreiben und die 2erpotenz von der Gesamtzahl abziehen und wenn die zahl größer ist aus der Prozedur raus und die nächstniedrigere Potenz probieren. Das ganz halt bis 2^0 und dann ende. Danach soll er den Array ausgeben in umgedrehter Reihenfolge.


Anmelden zum Antworten