#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
float f = 1.25; // set a breakpoint in the left!
cout << " hex value=" << hex << f << endl;
printf("%x", f);
return 0;
}
在该行中有一个断点,按F5进行调试,它显示的值为'-107374176。 ,这个数字是如何结束的?
这两个数字也让我很困惑。
在该行放置断点并不意味着已经评估/执行了特定行。先前的语句(在断点之上)已经执行,但是还没有执行。变量f
尚未在那时被初始化,所以你在内存中看到一些随机垃圾。按F10跳过该行并观察不同的结果。
一个可能的工作流程可能是
感谢@Evg和@ phuclv,我知道数字'-107374176'。出现。
使用该断点,1.25未分配给f,则f的值为(cccccccc)(十六进制),
(cccccccc)hex =(1 10011001 10011001100110011001100)bin
(10011001)bin =(153)dec,153 - 127 = 26
(1.10011001100110011001100)=(1.5999999046325684)dec
so(1 10011001 10011001100110011001100)bin =( - 1.5999999046325684 * 2 ^ 26)dec
=(107374176.0000000027262976)dec