ここに MSDN リンクがありますhttp://msdn.microsoft.com/en-us/library/s3f49ktz(v=VS.80).aspxから
unsigned int : 4byte 値の範囲 0 ~4,294,967,295
したがって、私のテストコード:
void main(void)
{
unsigned int sum; //4byte, 32bit
sum = 2147483648; //2^31 represent by 1 followed by 31 0s
printf("sum is %d\n",sum);
sum = sum -1 ; //2^31-1 represent by 0 followed by 31 1s
printf("sum is %d\n",sum);
getchar();
}
確かに 4,294,967,295=2^32-1, printfは "0" を出力し、最上位ビットをダンプ します。