【发布时间】:2013-08-01 12:49:27
【问题描述】:
在下面的代码中,我将 0xffffffff 乘以 2 得到 unsigned int(32 位)并将其存储在 unsigned long long(64 位)中。为什么我没有得到8589934588 的实际输出。相反,我得到4294967294。
提前致谢。
输出:
i=4 的大小
J的大小=8
2xi=4294967292
/* Code starts here */
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
unsigned int i=4294967294;
unsigned long long j=i*2;
printf("Sizeof i=%d\n", sizeof(i));
printf("Sizeof J=%d\n", sizeof(j));
printf("2xi=%llu\n", j);
return 0;
}
【问题讨论】:
标签: c unsigned-integer unsigned-long-long-int