在Visual Studio 2017中浮动f = 1.25的十六进制值,赢得10

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Visual Studio 2017中浮动f = 1.25的十六进制值,赢得10相关的知识,希望对你有一定的参考价值。

#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。 ,这个数字是如何结束的? enter image description here

如果我在没有调试的情况下运行,控制台中的结果就是result in console

这两个数字也让我很困惑。

答案

在该行放置断点并不意味着已经评估/执行了特定行。先前的语句(在断点之上)已经执行,但是还没有执行。变量f尚未在那时被初始化,所以你在内存中看到一些随机垃圾。按F10跳过该行并观察不同的结果。

一个可能的工作流程可能是

  • 按F9在代码中设置断点
  • 按F5开始调试
  • 继续按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

以上是关于在Visual Studio 2017中浮动f = 1.25的十六进制值,赢得10的主要内容,如果未能解决你的问题,请参考以下文章

创建 F# ASP.NET Core Web 应用程序需要啥 Visual Studio 2017 选项?

visual studio2017版安装时提示磁盘空间不足

visual studio2017社区版如何空格操作?

Visual Studio 2017 for Mac 快捷键

MatlabMatlab2017 使用Microsoft Visual studio做编译提示“fatal error C1083: 无法打开包括文件: “stdlib.h”: No such f(代

转到定义并返回到 Visual Studio Code 中的引用