Forum: Compiler & IDEs Binärzahl zusammensetzen


von Cha_Ko (Gast)


Lesenswert?

hallo Leute,

wie kann ich zum Beispiel aus

wert[1]=1
wert[2]=1
wert[3]=0
wert[4]=0
wert[5]=1
wert[6]=1
wert[7]=0
wert[8]=1

die binärzahl 10110011 machen?

Kons

von Falk B. (falk)


Lesenswert?

@  Cha_Ko (Gast)

>die binärzahl 10110011 machen?

Mit einer Schleife und Schiebeoperatioen. Siehe Bitmanipulation.

1
tmp=0
2
for (i=1; i<=8; i++) {
3
  tmp >>= 1;
4
  if (wert[i]==1) tmp |= 0x80;
5
}

MFG
Falk

von Peter D. (peda)


Lesenswert?

Warum machst Du denn so nen Unsinn und speicherst die Bits als int?

Beschreib dochmal, was Du vorhast und nicht nen höchstwarscheinlich 
total überflüssigen Teilschritt.


Peter

von AKr (Gast)


Lesenswert?

Günstiger ist es das Array von Index 8 bis 1 auszulesen und die Bits 
nach links zu shiften.
Warum?
Weil es beim Rechtshift von Datentyp von 'tmp' und MSB abhängt, ob der 
Prozessor eine 1 oder 0 'hereinshifted'.

Gruß
AKr

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.