Binär- bzw. Bitwerte dividieren -> Rest???



  • HEy ich würde gern mal wissen wie man zwei Folgen von Binärwerten voneinander dividiert... am besten gleich mit CPP. Mich interessiert weniger das Ergebnis, als der Rest. also das rot dargestellte. Die ersten beiden Folgen werden also miteinander dividiert:
    http://img139.imageshack.us/img139/4755/unbenanntrw0.th.jpg


  • Mod

    Kennst Du überhaupt die grundsätzlichen Operatoren in C/C++. Ist Dir der Modulo-Operator ein Begriff "%" ?



  • Ja ist mir bekannt. Mein Problem bzw. meine Frage ist nur wie gebe ich diese Bitfolgen ins C++ rein. Gibts da einen bestimmten Datentyp?


  • Mod

    Jede Zahl ist eine Bitfolge. Jede Integer Arithmetik funktioniert so.

    Was Du als binäre Darstellung siehst ist nur eine spezielle Ausgabe!
    Wie liegen denn die Daten vor?



  • Tagchen,

    Suchst du vlt. die Bit-Operatoren "&" und "|"?

    int a=4;  // ( 00000100 )
              //     UND
    int b=5;  // ( 00000101 )
              //    ergibt
              // ( 00000100 ) also wieder 4
    
    int c=a&b;  // hier wird eine binäre UND-Verknüpfung benutzt
    // c=4
    

    Die binäre Darstellung soll es nur verdeutlichen und nicht genau darstellen wie es wirklich im Speicher liegt (bevor sich gleich jemand über die unkorrekte Darstellung dieses "Speicherabbilds" beschwert *g*).



  • schau mal nach bitoperationen bitshift und so...

    wie martin schon schrieb, jede variable datentyp ist ein bitfolge...

    int a=0;
    
    	a= a | 1; //-> 0x00000000 ODER 0x00000001 = 0x00000001
    	a= a & 5; //-> 0x00000001 UND 0x00000101 = 0x00000001
    
    	a= a | (1 << 5); // 0x00000001 ODER 0x00010000 = 0x00010001
    	//(1 << 5) Bitshift: aqvivalent zu 0x00010000
    

    die ausgabe kann man als dezimalzahl oder Hexwert betrachten:

    TRACE("%i",a); //dez
    TRACE("%x",a); //hex
    

Anmelden zum Antworten