Zum Inhalt springen

Int in Byte


Gast KnapsackSolver

Empfohlene Beiträge

Gast KnapsackSolver
Geschrieben

Hallo Community,

ich habe mal wieder eine Fragen :(:D

Ich habe eine 12 Bit große Zahl ( Digital-to-Analog Converter).

Diese 12 Bit große Zahl muss ich nun in 2 Teile zerlegen!

Die höherwertigsten 4 Bit ( vom MSB rückwärts gezählt) müssen in eine byte Variable.

Die hinterstens 8 Bit müssen in eine weitere Variable.

Wie bekomme ich das gelöst?

Zur weiteren Erklärung, Ausgangssitaution:

12 Bit Zahl (z.B. 1011 0110 1110)

Die ersten 4 Bit müssen in eine Variable also variable1 = 1011

Die letzten 8 Bit müssen in eine Variable also variable2 = 0110 1110

Ich hoffe ihr könnt mir helfen

Gast KnapsackSolver
Geschrieben

Ja habs hin bekommen... Also sowas hier hab ich gesucht


 UINT16 u8_MASK = 000011111111;


    UINT8 u8_4BitMSB = u16_value>>8;

    UINT8 u8_8BitLSB = u16_value&u8_MASK;

    UINT8 u8_cmdValReg = u8_cmdReg | u8_4BitMSB;

Geschrieben
UINT16 u8_MASK = 000011111111;

Das funktioniert nicht. C und C++ kennen keine Literale für Dualzahlen. u8_MASK hat nicht den erwarteten Wert 255, sondern 37449, weil Zahl-Literale, die mit einer 0 beginnen, als oktal interpretiert werden.

Setz u8_MASK auf 255 oder 0xff, dann passt das.

Gast KnapsackSolver
Geschrieben

Wieso funktioniert das so nicht? Also ich verstehe die Begründung nicht. Ich bin hier ja bei C. Wenn ich hier jetzt z.B. 0b000011111111 schreibe funktioniert das ...

Geschrieben
Ich bin hier ja bei C. Wenn ich hier jetzt z.B. 0b000011111111 schreibe funktioniert das ...

Dann benutzt du einen Compiler, der das unterstützt, beispielsweise GCC. Vom C-Standard vorgeschrieben ist diese Funktionalität nicht.

Gast KnapsackSolver
Geschrieben

Ok das ist gut möglich. Also die von mir gepostete Lösung funktioniert.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...