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.