c语言中unsigned int 和int 之间怎么进行转化?

如题所述

第1个回答  2010-08-20
首先你应该int类型的数都是用补码表示的吧?
比如-1,-2的原码分别是
1000000000000001
1000000000000010(原码最高位为符号位1表示负,0表示正)
反码就分别是
1111111111111110
1111111111111101(反码是在原码基础上除了符号位以外全部取反)
补码就分别是
1111111111111111
1111111111111110(补码是在反码基础上加1)

而unsigned int就是简单的权值相加
正数的unsigned int和int都是一样的值(如果没越界的话)
比如unsigned int的65535表示成
1111111111111111(65535已经超过int范围)
而转换为int类型就是-1

还不懂的话,可以再联系。
相似回答