以下のコードでは、(32 ビット)0xffffffffに 2を掛けて(64 ビット)unsigned intに格納しています。unsigned long longである実際の出力が得られないのはなぜですか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;
}