部分代码:
//将输入的十进制转换打印其二进制形式
int num = 0;
scanf_s("%d", &num);
for(int i = 32; i > 0; i-- )
{
printf("%d", (num & 0x80000000) ? (1) : (0));
num <<= 1;
}
C/C++中不是int默认有符号么?32位下int的取值范围应该是 -2147483648~2147483647 为啥当num值输入4294967296时,控制台仍能打印出11111111111111111111111111111111?系统是64位的win7,工具是vs2013。不是说64位系统下int也是占4个字节么?
能不能稍微具体点?有点懵
追答这本是不是c primer plus?在第几页?我下个PDF来瞧一瞧
追答145
。。我在看145,应该是49