Gast
#6505937
Das Schieben einer 8-bit Zahl um 1 bit nach links müsste doch das Gleiche sein, wie eine Multiplikation mit 2:
1 | |
2 | |
3 | |
4 | |
Die Zeile
1 | |
gibt mir jedoch eine Compilerwarnung: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wconversion],
1 | |
jedoch nicht. Anscheinend wird a << 1 in eine 16-bit Integer umgewandelt, bei der anschliessenden Zuweisung zu unsigned char kommt es zu der Warnung. Warum passiert das bei a*2 nicht?