32bit signed zu 4*8bit unsigend

Gast #1126377
Lesenswert?

Hallo,
ich möchte gerne eine 32bit signed Variable auf 4 8bit unsigned 
Variablen aufteilen, dabei soll das Vorzeichen im höchstwertigen Byte so 
wie in der signed Variable auftauchen. Also das ganze Bitmuster soll 
erhalten bleiben!

Das ganze soll also so aussehen

32bit:   10000000 00000000 00000000 00000011      = -3

          1.byte   2.byte   3.byte   4.byte
8bit:    10000000 00000000 00000000 00000011
wert:       128       0        0        3


Wie lässt sich das sinnvoll realisieren?

Grüße aus Kassel,
Andreas
Gast #1126407
Lesenswert?

die 32bit Variable soll natürlich signed sein! Da verstehe ich nicht, 
warum sie 3 vorm Überlauf sein soll!

Das höchstwertige bit in einer signed Variable gibt doch das Vorzeiche 
an, oder habe ich da was falsch verstanden?
Gast #1126420
Lesenswert?

>Das höchstwertige bit in einer signed Variable gibt doch das Vorzeiche
>an, oder habe ich da was falsch verstanden?

Korrekt. Ich sollte vielleicht besser "Unterlauf" sagen.


11111111 11111111 11111111 11111111  =>  -1
11111111 11111111 11111111 11111110  =>  -2
...
10000000 00000000 00000000 00000011  =>  -2'147'483'645
10000000 00000000 00000000 00000010  =>  -2'147'483'646
10000000 00000000 00000000 00000001  =>  -2'147'483'647
10000000 00000000 00000000 00000000  =>  -2'147'483'648

00000000 00000000 00000000 00000000  =>   0

00000000 00000000 00000000 00000001  =>  +1
...
01111111 11111111 11111111 11111111  =>  +2'147'483'647

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren