This came up cause I was trying to clear bits in a loop and some cases required clearing the entire value. I was trying to do so in a branch-free manner.Code:#include <iostream> int main(void){ unsigned int foo = 0xFFFFFFFF; //i'd think these would return the same result, but //they don't in visual studio 2010 (debug/release). why? std::cout<< (foo << 32) << " " << (0xFFFFFFFF << 32) <<std::endl; return 0; }