We recommend using Visual Studio 2017

Compiler Warning (level 1) C4333


The latest version of this topic can be found at Compiler Warning (level 1) C4333.

operator' : right shift by too large amount, data loss

A right shift operation was too large an amount. All significant bits are shifted out and the result will always be zero.

The following sample generates C4333.

// C4333.cpp  
// compile with: /c /W1  
unsigned shift8 (unsigned char c) {  
   return c >> 8;   // C4333  
   // try the following line instead  
   // return c >> 4;   // OK