无符号long long int

时间:2016-11-10 01:55:32

标签: c++ g++ unsigned-long-long-int

我怀疑G ++ 5.4.0编译器中无符号long long int的乘法。为什么第一个片段溢出即使变量n是无符号长long int类型?为什么8背后的'LL'有效?

请给我一些关键字,我可以更多地了解这个问题。谢谢!

//WRONG RESULT: 1549413176
int main(){
  unsigned long long int n = 1804289383;
  std::cout<<n * 8 <<endl;
  return 0;
}

//Correct :14434315064
int main(){
  unsigned long long int n = 1804289383;
  std::cout<<n * 8LL <<endl;
  return 0;
}

编译器:g ++ 5.4.0

0 个答案:

没有答案