双精度的精确二进制表示[重复]

2023-12-01

可能的重复:
C++ 中的浮点数转换为二进制

我有一个非常小的双变量,当我打印它时,我得到-0。 (使用 C++)。 现在为了获得更好的精度我尝试使用

cout.precision(18); \\i think 18 is the max precision i can get.
cout.setf(ios::fixed,ios::floatfield);
cout<<var;\\var is a double.

但它只是写-0.00000000000...

我想查看 var 的精确二进制表示。

换句话说,我想看看这个变量的堆栈内存/寄存器中写入了什么二进制数。


union myUnion {
    double dValue;
    uint64_t iValue;
};

myUnion myValue;
myValue.dValue=123.456;
cout << myValue.iValue;

Update:

上面的版本适用于大多数用途,但它假定 64 位双精度。该版本不做任何假设并生成二进制表示:

    double someDouble=123.456;
    unsigned char rawBytes[sizeof(double)];

    memcpy(rawBytes,&someDouble,sizeof(double));

    //The C++ standard does not guarantee 8-bit bytes
    unsigned char startMask=1;
    while (0!=static_cast<unsigned char>(startMask<<1)) {
        startMask<<=1;
    }

    bool hasLeadBit=false;   //set this to true if you want to see leading zeros

    size_t byteIndex;
    for (byteIndex=0;byteIndex<sizeof(double);++byteIndex) {
        unsigned char bitMask=startMask;
        while (0!=bitMask) {
            if (0!=(bitMask&rawBytes[byteIndex])) {
                std::cout<<"1";
                hasLeadBit=true;
            } else if (hasLeadBit) {
                std::cout<<"0";
            }
            bitMask>>=1;
        }
    }
    if (!hasLeadBit) {
        std::cout<<"0";
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

双精度的精确二进制表示[重复] 的相关文章

  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz

随机推荐

  • 如何使用 C 程序将 ARM 处理器设置为不同模式?

    我正在研究不同模式的 ARM 处理器 我想检查处理器处于不同模式时的状态 例如 寄存器值 那么有人可以帮助我找到将处理器置于不同模式的示例代码吗 例如 我找到了未定义模式的代码 asm volatile short 0xffff n 如果您
  • Typescript / Webpack 检查是否通过生产配置运行

    我在用webpack reactjs typescript In my tsx代码中 我有一个要求 需要根据我的环境 即生产或开发 路由到 URL 那么 如何检查环境并加载正确的 URL动态地 您可以添加一个插件来定义可以在代码中访问的环境
  • apache mod_jk 向所有集群节点发送请求

    我有一个分布式集群系统 我已经设置了 apache 服务器并设置了负载平衡 mod jk 条件 而且粘性会话也是真实模式 我是否可以向所有 tomcat 集群节点发送一些特殊请求 在请求标头控制之后 有什么规则或者方法吗 不需要发送回客户端
  • 如何将 pdf 下载响应从 api (node/express) 传输到客户端 (react)?

    在我的具体设置中 我有一个生成 pdf 的后端服务器 然后当访问某个端点时 会触发 pdf 下载 但是 由于安全规则 我无法从前端访问该端点 因此我需要使用中间人服务器向后端发出请求 并将其转发到我的客户端 Code 前端 反应 const
  • 如何使用 CloudFormation 在 Redhat 中安装 aws-cfn-bootstrap/cfn-init 软件包?

    我正在尝试使用 CloudFormation 模板启动实例 实例已启动 但 UserData 部分未完全执行 因为cfn init aws cfn bootstrapRedhat 7 AMI 中未安装软件包 我尝试安装aws cfn boo
  • 消息、队列和 ESB - 我知道我想去哪里,但不知道如何到达那里

    长话短说 我正在开展一个项目 出于所有常见原因 我们正在重写一个大型 Web 应用程序 重写的主要目的是将在单个服务器上运行的大型单一应用程序分成许多较小的解耦应用程序 这些应用程序可以在许多服务器上运行 好的 这就是我想要的 我想HTTP
  • Qt 和高 dpi 屏幕

    我读过几篇关于此的文章 所以我有一台 Dell XPS 13 并将文本 应用程序和其他项目的大小更改为 200 但我想我的问题如下 当我通过 Qt Designer 启动应用程序时 一切看起来都很好 但是当我在设计器之外运 行应用程序时 意
  • 从 WPF 中的 Web 浏览器调用 HTML 页面中存在的 JavaScript 函数

    我是 WPF 新手 我在我的 wpf 应用程序中使用 WebBroswer 来渲染 Google 地图 我有一个 googlemap htm 页面 它包含一个初始化 lat log JavaScript 函数 现在我想使用 lat 和 lo
  • javascript 与数组的奇怪行为

    让我们考虑以下 JavaScript 片段 var arr function pushMe var temp name me arr push temp console log arr temp name you arr push temp
  • 根据 W3C XML 架构定义验证 XSD

    我正在生成一些 XML 模式 并希望确保我们的生成器正在创建有效的 XML 模式文档 不是 XML 我试图编写代码来验证 XML 模式文档 但失败了 我没想到会这么复杂 private void validateXsd String xsd
  • 静态内部类需要导入注释

    因此 我正在进行一些 jUnit 测试 并希望编写具有相似功能但足够小以在单个类中编写的不同类 无论设计决定如何 它都会给我带来编译器错误 我不确定我所看到的规则是什么 你可以想象它看起来像 package foo RunWith Suit
  • Realm - 模块文件是由旧版本的编译器创建的

    我使用最新版本的 xcode 和 swift 2 2 我的一个项目 由于错误 我已经好几个月没有打开了 现在还没有构建module file was created by an older version of compiler 我尝试了以
  • Mockito 单元测试 - 时间戳不同

    Mockito 测试存在一些问题 我目前收到此错误 Argument s are different Wanted repository save uk co withersoft docservice repositories hiber
  • 如何取消WCF服务调用?

    我有一个执行时间很长的WCF函数 所以我用backgraundworker在UI中调用该函数 我想提供一个取消执行的功能 所以我中止IComunicationObject 问题是服务执行没有停止 是在这种情况下有什么方法可以停止服务执行吗
  • 尽管 CloudWatch 代理正在运行,但 CloudWatch 日志组丢失

    我在 EC2 实例上看不到 Cloud Watch 代理定义的日志组 此外 默认日志组 var log messages 不可见 我在 root 帐户上也看不到这些日志 我配置了其他日志组并且可见 我有以下设置 亚马逊Linux 附加到实例
  • 我应该使用什么来为 heroku 上的 Rails 生成站点地图?

    作为 Rails 的初学者 我发现由于其只读限制 在 Heroku 上生成站点地图非常令人畏惧 然而 站点地图是我网站的基础 因为它的成功基于搜索引擎优化 我尝试过dynamic sitemaps gem 但很快就删除了它 因为我意识到它没
  • 使用 http:// 添加自定义 URL 架构

    我想向我的 iPhone 应用程序添加自定义 URL 以便其他应用程序能够打开它 不过 我希望 URL 以 http 开头 更详细地说 我想通过我发送给用户的电子邮件中的链接打开应用程序 并且如果从电子邮件中读取电子邮件 则该链接必须有效
  • OSX 10.8 登录项

    我找到了这个在 Package Maker 安装程序 postflight 脚本期间将应用程序添加到 OSX 登录项 但它似乎不适用于 OSX 10 8 这是来自另一个问题 适用于其他所有问题 defaults write Library
  • jquery 无限滑块 图片

    我正在尝试使用 jquery 创建一个无限滑块 我的页面有一些标签 其宽度等于窗口宽度 我想在 10 秒后滑动每张图像 当最后一张图像出现且第一张图像显示时 我希望它从右侧静止下来 现在我创建了一个宽度很大的 div 10000px 来保存
  • 双精度的精确二进制表示[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的浮点数转换为二进制 我有一个非常小的双变量 当我打印它时 我得到 0 使用 C 现在为了获得更好的精度我尝试使用 cout precision 18 i think 18 is the max