在阅读教程时,我遇到了如何在内存中表示浮点数.本教程有一个带浮点数的例子.
float a=5.2 with below Diagram
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我5.2如何转换为二进制文件以及它如何在上图中的内存中表示?
我说了两件事:
std::numeric_limits<float>::max()+(a small number) 给: std::numeric_limits<float>::max().
std::numeric_limits<float>::max()+(a large number喜欢:std::numeric_limits<float>::max()/3) 给 inf.
为何如此区别?1或2会导致OVERFLOW导致未定义的行为吗?
编辑:测试此代码:
1.
float d = std::numeric_limits<float>::max();
float q = d + 100;
cout << "q: " << q << endl;
Run Code Online (Sandbox Code Playgroud)
2.
float d = std::numeric_limits<float>::max();
float q = d + (d/3);
cout << "q: " << q << endl;
Run Code Online (Sandbox Code Playgroud) 我只是想知道是否有一些方便的方法来检测在运行时期间C++程序中使用的任何默认数据类型的任何变量是否发生溢出?方便的是,我的意思是,如果每个变量的值都在其数据类型的范围内,则无需编写代码来跟踪每个变量.或者如果不可能实现这一点,你会怎么做?
例如,
float f1=FLT_MAX+1;
cout << f1 << endl;
Run Code Online (Sandbox Code Playgroud)
在使用"gcc -W -Wall"编译或运行时,不会给出任何错误或警告.
感谢致敬!