Forum: PC-Programmierung Bits einer Zahl in Char


von Markus S. (Gast)


Lesenswert?

Hello,

simple Frage, bisher leider keine Antwort:

Ich habe eine Zahl, beispielsweise: 23.

Ich möchte nun diese Zahl, genauer gesagt deren binäre Darstellung in 
einer 8-Bit char Variable haben.
1
char zahl[4];
2
3
zahl[0]  = // in diesem char sollen die Bits "10111" drinstecken.
4
zahl[1] = // hier sollen andere Bits drin stecken.. 
5
//etc...

Wie kann ich das schaffen?

Vielen Dank im Voraus!

von Mike (Gast)


Lesenswert?

Markus S. schrieb:
> Wie kann ich das schaffen?

Wenn du noch verrätst, wie die Bits "10111" zu "23" in Verbindung stehen 
sollen ...

von Markus S. (Gast)


Lesenswert?

oh sorry..


das ist die binäre Darstellweise der Zahl!

von Silvan K. (silvan) Benutzerseite


Lesenswert?

Wie wäre es mit:
1
zahl[0] = 0b10111;

von Mark B. (markbrandis)


Lesenswert?

Markus S. schrieb:
> Ich habe eine Zahl, beispielsweise: 23.
>
> Ich möchte nun diese Zahl, genauer gesagt deren binäre Darstellung in
> einer 8-Bit char Variable haben.

unsigned char in_einer_acht_bit_char_variable = 23;

Das war's schon. Intern ist die Zahl im Binärformat gespeichert.

Wenn Du die Zahl z.B. im Binärformat auf dem Bildschirm anzeigen 
lassen willst, dann ist das eine andere Frage.

Wenn Du eine 32-Bit-Zahl in viermal acht Bits unterteilen willst, ist 
das nochmal was anderes.

Also, was willst Du eigentlich? (die Frage aller Fragen hier im µc.net 
Forum)

: Bearbeitet durch User
von Zu einfach? (Gast)


Lesenswert?

Silvan König schrieb:
> Wie wäre es mit:
> zahl[0] = 0b10111;

Wie wäre es mit:
1
zahl[0] = 23;

von Max H. (hartl192)


Lesenswert?

Ich verstehe deine Frage nicht ganz...
Wie viele bits Sollen in zahl[0] stehen, wie viele in den Restlichen?
Wie entscheidest du wie viele Bits in welchem Element gespeichert 
werden?

Du könntest etwas weiter ausholen und sagen, was du damit eigentlich vor 
hast?
Könnte es sein, dass du eine 32bit Zahl in einem Array aus vier 8bit 
Variablen (char) speichern willst?
Wenn es das ist:
1
zahl[0]=23&0xFF;
2
zahl[1]=(23>>8)&0xFF;
3
zahl[2]=(23>>16)&0xFF;
4
zahl[3]=(23>>24)&0xFF;
oder wenn die 23 eine Konstante ist:
1
zahl[0]=23;
2
zahl[0]=0;
3
zahl[0]=0;
4
zahl[0]=0;


Was würde in dem Beispiel mit 23 dann in zahl[1], zahl[2] und zahl[3] 
stehen?

Mark Brandis schrieb:
> Also, was willst Du eigentlich?
Gute Frage, nächste Frage...

: Bearbeitet durch User
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.