原因就是 不同的编译系统对int等变量类型定义的存储空间字节数不一样,在谭浩强版的C语言中第三章关于变量类型的定义中,有专门很大一页讲解这个问题。TC2.0编译系统对int字节定义的存贮空间为32bit,所以a=0x9a,b=~a=0xffff-0x9a=0xff65;Visual C++6.0编译系统对int字节定义的存贮空间为64bit,所以a=0x9a,b=~a=0xffff ffff-0x9a=0xffff ff65;洗完你能看得明白。