Binärwerte in Variablen

  • Themenstarter Themenstarter borp
  • Beginndatum Beginndatum
Wenn du sie addierst, werden Dezimalen zusammengezählt.
Das heisst, 1+1 =2
Für Binärwerte müsstest du eine eigene Funktion schreiben.
 
Ich möchte die Variablen nicht zusamenzählen sondern zusammenfügen sodass die Inhalt der Variablen hintereinander stehen
dadurch meine Frage ob die Binärwerte oder die Dezimalwerte beim Zusammenfügen verwendet werden
 
Hi.
Ich möchte die Variablen nicht zusamenzählen sondern zusammenfügen sodass die Inhalt der Variablen hintereinander stehen
dadurch meine Frage ob die Binärwerte oder die Dezimalwerte beim Zusammenfügen verwendet werden
Der Formatstring %i gibt Integerwerte in Dezimalschreibweise aus.
C:
unsigned int octet1 = 0x3f;
unsigned int octet2 = 0x74;

unsigned int res = octet1 * 256 + octet2; // ergbit 0x3f74
Das gleiche ließe sich mit Bitmanipulationsoperationen verwirklichen.

Gruß
 
Ich glaube du suchst sowas:

Code:
short test1 = ((0xAC << 8) | 0x80)

dann hast du hexadezimal:0xAC 0x80
und binär gesehen: 1010 1100 1000 0000

Das vordere Bit (big-endian) wird einfach 8 bit nach links geschoben.
Folglich gilt für ein integer:

Code:
int test2 = ((0x10 << 24) | (0x4C << 16) | (0xAC << 8) | 0x80)

um hexadezimal:0x10 0x4C 0xAC 0x80
und binär: 00010000 01001100 10101100 10000000
zu erhalten.

Hoffe das hat dir geholfen.

Aber Achtung:
Je nach Prozessor bzw. Betriebssystem, ist die Speicherweise big/middle/little-endian und die Reihenfolge beim shiften kann variieren.


Mfg Pain-maker
 
Zuletzt bearbeitet:
Zurück