以下是引用lz1091914999在2012-11-12 22:30:12的发言:
char是有符号的,所以ff为-1,当它提升为4个字节的时候,为了保证-1的意义不变,所以为ffffffff。这跟范围其实没什么关系。
有见地,应该是这样,11,22,33这三个最高位为0,前面6为全补0,11其实是0x00000011,22其实是0x00000022,33其实是0x00000033,到了ff也就是0b11111111,char中表示-1,其最高位为1,为了不改变值,前面6位全补1,ff其实是0xffffffff,所以楼主程序运行结果可以理解!