#include <stdio.h>
#include <math.h>
#include <limits.h>
int main(void)
{
unsigned long x = 0;
x = x ^ ~x;
printf("%d\n", x);
x = (unsigned long)pow(2, sizeof(x)*8);
printf("%d\n", x);
x = ULONG_MAX;
printf("%d\n", x);
return 0;
}
Windows 7 で CodeBlocks12.11 と MinGW 4.7.0-1 を使用しています。何らかの理由で、変数x
が可能な限り最大の 10 進数値表現を取得するのに問題があります。なぜこれが起こるのか、私はそれx = ULONG_MAX
がうまくいくと確信していますが、それはまた-1
、今では確かに正しくありません! Code-Blocks の外でもコンパイルしてみました。
ここで何が欠けていますか?