Hallo ! Wie kann ich einen long in char Wert umwandeln? Was muss ich dafür in C programmieren? Mfg Frank
an sich brauchst du gar nichts machen, einfach zuweisen. Die oberen 3 Byte werden gnadenlos abgeschnitten.
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 ...
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.