Gast
#630184
Hallo ! Wie kann ich einen long in char Wert umwandeln? Was muss ich dafür in C programmieren? Mfg Frank
|
Anzeige
|
long in char Wert umwandeln
Gast
#630184
Hallo ! Wie kann ich einen long in char Wert umwandeln? Was muss ich dafür in C programmieren? Mfg Frank
Gast
#630185
an sich brauchst du gar nichts machen, einfach zuweisen. Die oberen 3 Byte werden gnadenlos abgeschnitten.
Gast
#630187
Aha und beim Integer, dann die oberen zwei Byte, oder wie?
Gast
#630202
Bin ja noob, aber fehlen da nicht ein paar Angaben, um die Frage sinnvoll beantworten zu können? - Verwendete CPU (Big oder Little Endian, Architektur) - Verwendete Programmiersprache "Einfach zuweisen" mag zwar grundsätzlich klappen (abhängig von Programmiersprache), aber ein guter C-Compiler meckert bei so was normalerweise (implicit type conversion) und grundsätzlich ist das auch eher schlechter "Stil". Im Zweifel sollte man auf jeden Fall kommentieren, dass man das absichtlich (!) macht und nicht versehentlich. Einfacher und klarer (und im Endergebnis wahrscheinlich kein Unterschied) wird es, wenn man explizit konvertiert (castet) und am besten noch maskiert. Was der (zB) C-compiler dann daraus optimiert ist seine Sache. Aber man möchte seinen eigenen Code ja in ein paar Monaten auch noch verstehen ...
Gast
#630223
klar gibt der Compiler ne Warnung, und es tritt ja auch ein Informationsverlust ein. Und wenn man sowas schon tut, wirds auch einen Sinn/Hintergrund haben. Big/little-Endian dürfte meiner Meinung nach keine Rolle spielen, das macht der Compiler schon richtig. Solch eine Zuweisung macht schon manchmal Sinn, nach umfangreichen Rechnungen mit long kann das Endergebnis durchaus immer in einen kleineren Datentyp passen, auch in einen char. Noch ne kleine Falle: manche Compiler benutzen char erst mal automatisch als unsigned. Antwort schreiben |
Anzeige
|