Anzeige:
Ergebnis 1 bis 4 von 4

Thema: ff f3 cb 00 in -800000 umsetzten???

  1. #1
    Registrierter Benutzer Avatar von 24dan
    Registriert seit
    07.07.2005
    Beiträge
    76

    ff f3 cb 00 in -800000 umsetzten???

    Hallo ich habe einen int daten Array mit 4 elementen in denen folgendes in hex steht
    00 0C 35 00
    data[0] bis data[3]
    das sollte jetzt in c/c++ so als Integer (dez) um geschrieben werden das ich damit rechen kann.
    Was ich für positive Werte wie folgt geschafft habe:
    ergebnis = data[0]+data[1]*256+data[2]*2^16+data[3]*2^24
    ergebnis ist dann 800000

    Bei neg. Zahlen bekomme ich jedoch Probleme nmit dem Umsetzten:
    FF F3 CB 00
    soll jetzt -800000 sein...
    Ich bekomme nach meiner Methode aber nur 4294167296 raus
    Kann jemand helfen?
    ...der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott. (Werner Heisenberg 1901-1976, Nobelpreisträger für Physik)
    debian on acer travelmate c300: http://adweb.desy.de/~kaemtner/

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    geht das nicht:

    Code:
    signed int* pInt = (signed int*)data;

  3. #3
    Registrierter Benutzer Avatar von 24dan
    Registriert seit
    07.07.2005
    Beiträge
    76
    nein leider bekomme ich da auch keine Lösung:mein data array hat 8 elemente von denen nur die letzten 4 interessant sind also so...
    Code:
    int buf[4],k,i;
    signed int *test;
    k=4;
    for (i=0;i<4;i++,k++) buf[i]= data[k];
    for (i=0;i<4;i++) cout<<buf[i]<<" ";
    test = (signed int *) buf;
    cout<<"\n test "<<*test;
    Ausgabe:
    0 203 243 255
    test 0
    ...der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott. (Werner Heisenberg 1901-1976, Nobelpreisträger für Physik)
    debian on acer travelmate c300: http://adweb.desy.de/~kaemtner/

  4. #4
    Registrierter Benutzer Avatar von 24dan
    Registriert seit
    07.07.2005
    Beiträge
    76
    okay jetzt gehts:
    Code:
    uint8_t buf[4],k;
    signed int *test;
    
    k=4;
    for (i=0;i<4;i++,k++) buf[i]= cmsg.data[k];
    for (i=0;i<4;i++) cout<<buf[i]<<" ";
    test = (signed int *) buf;
    cout<<"\n test "<<*test;
    Ausgabe:
    \uffff \uffff \uffff
    test -800000

    thankx to 7.e.Q for help....
    regards
    24dan
    ...der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott. (Werner Heisenberg 1901-1976, Nobelpreisträger für Physik)
    debian on acer travelmate c300: http://adweb.desy.de/~kaemtner/

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •