unsigned char 移位解决办法

unsigned char 移位unsignedcharvalCharunsignedintvalIntvalChar0x01valIntvalChar 16得到结果v

unsigned char 移位
unsigned   char   valChar;
unsigned   int   valInt;

valChar   =   0x01;
valInt   =   valChar   < <   16


;;得到结果     valInt   =   0x00010000;
安照道理,是不是valChar   移位的时候回溢出的。

[解决办法]
valChar = 0x01;
valInt = valChar < < 16

楼主是用VC、Dev-C++之类的32位的编程工具测试的吧, 因为他们的int为32位的。
如果换成TC2.0的之类的DOS平台编程工具,valInt就会等于0了