gpt4 book ai didi

c++ - 从 long long 中减去一个 int

转载 作者:搜寻专家 更新时间:2023-10-31 01:51:18 28 4
gpt4 key购买 nike

if(number > 999999999)
{
int n_billions;
n_billions = number/1000000000;
cout << number;

number -= n_billions*1000000000;
cout << number;
}

如果我让 number = 9000000000(九十亿),我不明白为什么在我运行程序后变量 number 而不是 0 是 8589934592。

难道 number 是一个 long long 类型,而 n_billions 是一个 int 类型?

最佳答案

您需要确保将十亿的数量乘以 long long,如下所示:

number -= n_billions*1000000000LL;

否则,当 n_billions 大于 2 时,您会得到一个整数溢出。

long long number = 9000000123LL;
if(number > 999999999) {
int n_billions;
n_billions = number/1000000000;
cout << number << endl;

number -= n_billions*1000000000LL;
cout << number << endl;
}

以上prints 123 符合预期。

当然这相当于得到一个余数,像这样:

number %= 1000000000;

关于c++ - 从 long long 中减去一个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13981585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com