以下を試してみましたが、「test」の値が間違っているようです。2500 * 2500 * 2500 == 15625000000、なぜ以下の操作で異なる結果になるのですか?
unsigned long long int test = 2500*2500*2500;
fprintf(stderr, "*************** test = %lld, %llu\n", test, test);
unsigned long long int test2 = 15625000000;
fprintf(stderr, "*************** test2 = %lld, %llu\n", test2, test2);
結果:
*************** test = -1554869184, 18446744072154682432
*************** test2 = 15625000000, 15625000000