gpt4 book ai didi

c++ - C++中的基本整数解释

转载 作者:行者123 更新时间:2023-11-28 01:01:04 25 4
gpt4 key购买 nike

这是一个非常基本的问题。请不要介意,但我需要问这个问题。两个整数相加

int main()
{
cout<<"Enter a string: ";
int a,b,c;
cout<<"Enter a";
cin>>a;
cout<<"\nEnter b";
cin>>b;
cout<<a<<"\n"<<b<<"\n";
c= a + b;
cout <<"\n"<<c ;
return 0;
}

如果我给 a = 2147483648 那么b自动取值为4046724,注意cin不会提示结果c是7433860

如果 int 是 2^32 并且第一位是 MSB 那么它变成 2^31

c= 2^31+2^31

c=2^(31+31)

这是正确的吗?

那么对于 a= 2147483648 和 b= 2147483648 如何实现 c= a+b 并且 c 应该是整数还是双整数?

最佳答案

当您执行任何类型的输入操作时,您必须始终包括错误检查!对于流运算符,这可能看起来像这样:

int n;
if (!(std::cin >> n)) { std::cerr << "Error!\n"; std::exit(-1); }
// ... rest of program

如果您这样做,您会发现您对 a 的初始提取已经失败,因此之后读取的任何值都没有明确定义。

提取失败的原因是文字标记“2147483648”在您的平台上不代表int类型的值(太大了),没有区别例如,“1z”或“Hello”。

编程中的真正危险是默默地假设输入操作成功,而实际上却没有成功。尽早失败并尽可能大声地失败。

关于c++ - C++中的基本整数解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667638/

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