2x char -> double

Gast #2997866
Lesenswert?
• ▲
▼
Hallo,

ich habe Probleme mit einer Umwandlung.
Ich möchte 2 Charwerte in der Form <wert1><wert2> zusammen fassen. Dabei 
ist in wert1 das höherwertige byte. Bei dem zusammengefassten handelt es 
sich dann um ein unsigned Integer. Damit wird nun ein double geladen.
Leider sind alle meine Versuche darauf hinaus gelaufen das im Double am 
ende die signed interpreation meiner Zahl steht steht.
Ich schließe daraus das der Cast vom zusammengesetzten (u)int16 zu 
double nicht funktioniert. Habe schon viele Varianten ausprobiert die 
alle zum gleichen Ergebnis geführt haben.

Könnte mir jemand ein beispiel Zeigen wie man es richtig macht?
Danke
#2997960
Lesenswert?
• ▲
▼
Peter II schrieb:
> nein ist es nicht, es ist eventuell bei gcc irgendwo so. Im C standard
> ist es nicht definiert.

Das bedeutet aber nicht, dass es "undefined" ist. Der Standard sagt, es 
ist "implementation-defined", er reicht die Verantwortung also einfach 
weiter. Das bedeutet, dass die Signedness eines char sehr wohl immer 
definiert ist, nur eben nicht vom Standard, sondern vom jeweils 
verwendeten Compiler.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.