what does it mean to bitwise left shift an unsigned char with 16
问题 i am reading a .cpp file containing a unsigned char variable, it's trying the bitwise left shift 16 bits, since an unsigned char is composed of 8 bits, left shift 16 bits will erase all the bits and fill it with eight 0s. unsigned char byte=0xff; byte << 16; 回答1: When you shift a value, unsigned char x = ...; int y = x << 16; The type of x is promoted to int if unsigned char fits in an int (most systems), or to unsigned if unsigned char does not fit in an int (rare 1 ). As long as your int is