以下のコードでは、(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;
}