Hi, für eine Gleitkommadarstellung habe ich ein 16-Bit Wert (32 war mir zu lang). diesen möchte ich jetzt für arithmetische Funktionen zerlegen. Meine Frage ist nun, ob dies einfacher geht, als zu schauen, ob z.B. das erste Bit gesetzt ist, indem man guckt, ob die Zahl kleiner ist als 32768. Bzw. kann man vielleicht sogar bits "rauskopieren"? Also Stellen z.B. 1-8 in einen 8bit-int reinschreiben??? Vielen Dank schon einmal im Voraus, Ozzy
Das ist in C einfach:
uint16_t wert;
uint8_t einbyte;
if (wert & (1 << 15))
puts("Bit 15 gesetzt\n");
if (wert & (1 << 13))
puts("Bit 13 gesetzt\");
einbyte = wert & 0xFF;
Hi, vielen Dank für Deine Antwort! Kannst Du mir auch sagen, wie ich solche Werte shiften kann? Also z.B. 3x nach rechts? Und das eleganter als 3x durch 2 zu teilen??? MfG, Ozzy
Christoph O. wrote: > Hi, > > vielen Dank für Deine Antwort! Kannst Du mir auch sagen, wie ich solche > Werte shiften kann? Also z.B. 3x nach rechts? Und das eleganter als 3x > durch 2 zu teilen??? Ist das eine Fangfrage? wenn << shiften nach links bedeutet, was wird dann wohl das Zeichen für 'Shiften nach rechts' sein? Genau: >>
Hi, nein, das sollte keine Fangfrage sein. Ist das dann einfach (wert<<3) ist linksshift um 3? MfG, Ozzy
Gast
#674499
@Christoph Das solltest du dir mal anschauen: http://www.amazon.de/f%C3%BCr-Dummies-So-lernen-Sie-hohe/dp/3826629434
Gast
#674510
mach ne struktur, wo du zusätzlich zum wort, die einzelnen bits nochmals separat als variablen definierst, ist das einfachste und schnellste wenn dus oft brauchst...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.