habe eine Frage zur Bitverschiebung.
Wenn ich beispielsweise einen 8Bit Wert habe:
0000 1010, also die dezimale 10, und den Bitweise verschieben möchte, beispielsweise: 10 << 2;
Dann "schiebe" ich ja eigentlich zwei Nullen von rechts rein, was in einer
0010 1000, also 40 resultieren würde.
Wie läuft das mit negativen Zahlen? Wenn die im Zweierkomplement vorliegen, muss ich dann Einsen anstatt Nullen "reinschieben" ?
Die Dokumentation sagt nur:
Was für mich keine klare Aussage ist.Quote:
5 The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type
or if E1 has a signed type and a nonnegative value, the value of the result is the integral
part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the
resulting value is implementation-defined.
Grüße






