虽然8为的char可以表示256个字符,不过明显系统是用有符号数表示它的。超过127的数计算机就理解成负数了。200应该是表示为 -73
然后就是强制转换的问题了,系统先把-73按照补码的格式扩展到4个字节的int型,补码就是"111111111111111111111111101100101",后面几个01是我乱打的,懒得算了....然后用unsigned表示就是4294967240了。
至于LZ文为什么强制转化的unsigned int类型就按int类型来处理了,我只能说编译器就是这么做了,编程的时候还是得小心点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)