关于有符号数与无符号数互转的有关问题

关于有符号数与无符号数互转的问题
最近看别人的源码,看到有符号数向无符号数赋值的问题,
如unsigned int s = ( unsigned int )( -25 );
调试发现s的值是2^32 - 25。也就是unsigned int的最大值-1再加上有符号值。我用笔算了下,
自认为应该是将-25转为二进制补码,然后将此补码按照无符号数转回来即可,这里想向大家求证下是不是这样的。
另外,顺便问一下无符号数向有符号数转是怎样的,也一样是先转成补码再按照补码转成有符号数的吗

------解决方案--------------------
有符号与无符号的相互转化是直接复制位的
------解决方案--------------------
unsigned int s = ( unsigned int )( -25 );
好色部分不会有任何可执行代码,只是编译的时候将其解释为无符号,然后拷贝给s


------解决方案--------------------
无符号数, 有符号数 的二进制编码相同
------解决方案--------------------
自认为应该是将-25转为二进制补码,然后将此补码按照无符号数转回来即可
似乎也行,不过是做无用功,
因为, 有符号数就是补码数,正有符号数和0就是原码表示,负数就是补码表示。

有符号数和无符号数,之间的强制转换;
就是不做转换,原数不动,一个Bit也没有改变。
改变的只是数据类型。