#include"stdio.h"
main()
{
unsigned a;
int b=-1;
a=b;
printf("%d->%u\n",b,a);
a=65534u;
b=a;
printf("%d->%u\n",b,a);
}
例如上面的这段代码,我在WIN32平台,集成开发环境是VC++6.0的输出的结果的
-1->4294967295
65534->65534
就是不知道上面的4294967295是怎么来的
我的猜想是这个无符号a在内存中的存储空间是4个个字节然后得到了这个值,但是具体的过程却不知道怎么推出的,或许这个猜想也是错的
有没有知道的麻烦帮忙解答下然后把答案发到我QQ邮箱里面
394021672@qq.com
先谢谢1楼和2楼的回答额!
二楼的朋友那我多问个问题额?那为什么返回的结果会变成4294967295,呵呵!刚开始我自己读完这个程序觉得输出的a是1呵呵!这是不是与一楼说的二进制的补码与原码有关呀,我刚找到资料还没看呵呵,那我先看完吧。希望你也能给我指教下哈,先谢过一下额!