byte[4] zu int konvertieren



  • otze schrieb:

    char array[4];
    int* intZeiger=static_cast<int*>(array);

    static_cast? sicher?

    ich wäre für reinterpret_cast



  • @otze: error C2440: 'static_cast' : cannot convert from 'char [4]' to 'int *' 😞



  • hmmmmmm schrieb:

    ich wäre für reinterpret_cast

    ich auch

    @freshman: IMHO geht es hier tatsächlich um eine Binärrepräsentation des ints, nicht um eine String->Int Umwandlung.



  • hallo,

    danke für die schnellen Antworten. Habe aber mich für die Lösung entschieden

    int wert = 0;
    for (i = 0, k = 24; i < 4; i++, k -= 8)
    	wert = daten[i] << k;
    


  • sadza79 schrieb:

    hallo,

    danke für die schnellen Antworten. Habe aber mich für die Lösung entschieden

    int wert = 0;
    for (i = 0, k = 24; i < 4; i++, k -= 8)
    	wert = daten[i] << k;
    

    ist gegenüber einem einfach cast aber eher umständlich 😕



  • Bashar schrieb:

    hmmmmmm schrieb:

    ich wäre für reinterpret_cast

    ich auch

    *kopfkratz* wieso denn das? sind die typen zur compilezeit nicht komplett bekannt?



  • otze schrieb:

    Bashar schrieb:

    hmmmmmm schrieb:

    ich wäre für reinterpret_cast

    ich auch

    *kopfkratz* wieso denn das? sind die typen zur compilezeit nicht komplett bekannt?

    Nein, static_cast ist für sowas gar nicht gedacht, sondern nur für Konvertierung von verwandten Typen und void-Zeigern.



  • otze schrieb:

    *kopfkratz* wieso denn das? sind die typen zur compilezeit nicht komplett bekannt?

    Was hat das damit zu tun? Sicher sind die Typen bekannt, C++ ist schließlich statisch getypt. Ansonsten siehe Vorposter.



  • otze schrieb:

    char array[4];
    int* intZeiger=static_cast<int*>(array);

    Funktioniert natürlich nur auf Architekturen wie z.B. x86, die kein Alignment erfordern!



  • Geo schrieb:

    otze schrieb:

    char array[4];
    int* intZeiger=static_cast<int*>(array);

    Funktioniert natürlich nur auf Architekturen wie z.B. x86, die kein Alignment erfordern!

    das funktioniert doch überhaupt nicht. weil er den falschen cast gewählt hat.


Log in to reply