Binärwerte in Variablen

  • Themenstarter Themenstarter borp
  • Beginndatum Beginndatum
B

borp

meine frage ist wenn ich aus einem register einen 8bit Wert zb: 1000 0000b in eine Variable speichere und anschließend einen 2ten
8bit wert zb: 1010 1100b in eine Variable speichere steht dann in der Variable 1010 1100 1000 0000 in meiner Variable
 
Wie schaffe ich es, dass ich eine 8bit Zahl zb: 1110 1001 und eine 2te 8bit zahl zb: 1000 0000 in eine
short variable zu schreiben so, dass die 2 8bit zahlen hintereinander stehen also 1110 1001 1000 0000

bitte um lösungsvorschäge

zurzeit lautet mein versuch wie folgt:

tmp_msb = Inp32(0x50); //read high byte CPUtemperature
tmp_lsb = Inp32(0x51); //read low byte CPUtemperature

tmp_hlf.Format("%i%i",tmp_msb,tmp_lsb); //add low byte to high byte
hlf = atoi(tmp_hlf);
tmp_cpu = hlf >> 7; //eleminate bits 6-0 from lowbyte
 
Kannst du bitte richtig schreiben :mad:?
Druchgehend kleingeschriebene Beiträge sind laut Netiquette unerwünscht! Bitte melde dich auch an :)
Nun zu deinem Problem:
Code:
char temp[1000];
sprintf(temp,"%d%d",deinevar1,deinevar2);
sscanf(temp,"%d",&deinresultat);
Das wäre meine Lösung :)
Wenn mein Beitrag geholfen hat, klicke bitte auf den Danke-Button :)
PS: Ist in C geschrieben, also kann es sein, dass er es nur so aktzeptiert:
Code:
extern "C" {
char temp[1000];
sprintf(temp,"%d%d",deinevar1,deinevar2);
sscanf(temp,"%d",&deinresultat);
}
Lorenz
 
Variablen in die Binärzahlen geschrieben werden

ich würde gerne wissen was passiert wenn ich aus einem register einen 8bit wert zb: 1100 1001b
in eine int variable var1 und in eine andere int variabel var2 einen 2ten 8bit wert zb: 1000 0000b einfügen und diese dann mit der folgenden Fkt.
verknüpfe:

CString tmp_hlf;
tmp_hlf.Format("%i%i",tmp_msb,tmp_lsb);

steht nun in dem CString tmp_hlf: 1100 1001 1000 0000 also die binärzahlen zusammengefügt oder steht 201128d also die Dezimalzahlen
das ist für mich wichtig weil ich anschließend den String in eine int Variable zurückwandle und dann um 7 stellen nach rechs schieben möchte
dass theoretisch 1100 1001 1 in der neuen int variable steht
 
Ich möchte zwei Integer Variablen zusammenfügen
In die erste Integer-Variable lese ich aus einem Register 1100 1001b ein.
In die zweite Integer-Variable lese ich aus einem anderen Register 1000 0000b ein.

Nun ist mein Problem dass ich die beiden Integer-Variablen zusammenfügen möchte sodass
in einer dritten Integer-Variable 1100 1001 1000 0000b steht. In meinem vorigem Beitrag wollte ich wissen
ob die flogende Funktion das macht und wenn nicht wie es gehen könnte
danke

tmp_msb = Inp32(0x50); //read high byte CPUtemperature 1100 1001
tmp_lsb = Inp32(0x51); //read low byte CPUtemperature 1000 0000

tmp_hlf.Format("%i%i",tmp_msb,tmp_lsb); //add low byte to high byte 2011 ist 2011 soll 51456
hlf = atoi(tmp_hlf);
 
Es geht eigentlich nicht darum ob ich 3 oder 0011b bekomme das ist ja nur eine Darstellungsfrage.
Meine Frage ist wenn ich die Variablen zusammenfüge ob die Binärwerte der Integer Variablen zusammengefügt werden oder
die Dezimalwerte
 
Zurück