-2 * 4^31 + 1 = -9.223.372.036.854.775.807、ここでは、What range of values can integer types store in C++と言っているように、長期間保存できる最低値を知っています。 だから私は、この操作を持っている:Visual Studioのlong long値
#include <iostream>
unsigned long long pow(unsigned a, unsigned b) {
unsigned long long p = 1;
for (unsigned i = 0; i < b; i++)
p *= a;
return p;
}
int main()
{
long long nr = -pow(4, 31) + 5 -pow(4,31);
std::cout << nr << std::endl;
}
なぜそれが-9.223.372.036.854.775.808代わりの-9.223.372.036.854.775.803を示していますか?私はVisual Studio 2015を使用しています。
コメントは議論の対象外です。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/130291/discussion-on-question-by-peter-long-long-value-in-visual-studio)。 –