Bitshift um mehr als 31 Bit
-
Hallo,
kann es sein, dass man in einem uint64_t maximal um 31 Bits auf einmal shiften kann? Warum?
MfG
bitshifter
-
Nein, eigentlich nicht.
-
Spekulation: Du hast irgendein Zwischenergebnis einer Rechnung, welches entgegen deiner Annahmen von einem kleineren Typ ist. Zum Beispiel
long long foo = 1 << 33;
Die 1 ist vom Typ int und wird in diesem Fall auch nicht promoted. Die Rechnung sieht nicht, was auf der linken Seite der Zuweisung steht.
Habe ich richtig geraten?
-
Das wars. Danke!
-
int64_t schrieb:
Das wars. Danke!
Nochmal Spekulation: Du hast nun etwas in der Art von
long long foo = 1; foo = foo << 33;
gemacht? Falls ja: Man kann bei Literalen auch den Typ angeben, z.B. ist 1LL ein long long mit Wert Eins.