我有一个简单的程序:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
unsigned short a;
cin >> a;
cout << a;
return 0;
}
当我输入大于65535的数字(溢出数字)时,我总是会收到52428作为输出。当我输入一个小于0的数字(一个下溢数字)时,输出就如预期的那样(例如:输入-1将具有输出65535)。
我正在使用Visual Studio 2013 Ultimate,我的朋友也正在使用Visual Studio 2010编译该程序,我们两者都具有与上述相同的结果。
那么,大于65535的数字(溢出数字)到底是怎么回事?
提前致谢。
您好,我发现另外两个主题可以为您提供帮助:
谢谢大家回答我的问题。
52428是十六进制的CCCC;该值可能正在使用调试内存。如果编译并使用Release配置运行,则可能会得到不同的结果,因为它实际上是未初始化的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句