有C++问题,可以't cout<<100000×100000正确



在C++中使用COUT时,无法打印100000*100000。产量为1410065408,而不是10000000000。我该怎么解决?谢谢

默认情况下,整数文本的类型为int,这会导致溢出。使用100000LL将数字标记为long long,并产生长-长结果。

https://en.cppreference.com/w/cpp/language/integer_literal

该值被截断,因为10000000000大于默认的整数类型int最大值(std::numeric_limit<int>::max()(,

hex(10000000000) = 0x2540be400
hex(1410065408) =   0x540be400

您可以看到第一个字节被截断了。

修复它:

100000LL * 100000

或者铸造

static_cast<int64_t>(100000) * 100000

相关内容

最新更新