Delphi 扩展到 C#

2023-11-30

如何将浮点 10 字节十六进制字符串(Delphi 中的扩展数据类型)转换为 C# 数据类型?

例如:00 00 00 00 00 00 00 80 ff 3f在德尔福1


遇到了同样的问题,分享我的解决方案,有人会觉得有用:

        var extendedSize = 10;
        var buf = new byte[extendedSize];

        // Populate buffer with something like: { 0x00, 0x68, 0x66, 0x66, 0x66, 0x66, 0x66, 0xA2, 0x02, 0x40 } = 10.15
        // Read(buf, extendedSize);

        var sign = (buf[extendedSize - 1] & 0x80) == 0x80 ? -1 : 1;
        buf[extendedSize - 1] = (byte)(buf[extendedSize - 1] & 0x7F);
        var exp = BitConverter.ToUInt16(buf, extendedSize - 2);
        var integral = (buf[extendedSize - 3] & 0x80) == 0x80 ? 1 : 0;           

        // Calculate mantissa
        var mantissa = 0.0;
        var value = 1.0;
        var fractal = BitConverter.ToUInt64(buf, 0);

        while (fractal != 0)
        {
            value = value / 2;
            if ((fractal & 0x4000000000000000) == 0x4000000000000000) // Latest bit is sign, just skip it
            {
                mantissa += value;
            }
            fractal <<= 1;
        }

        return sign * (Math.Pow(2, exp - 16383)) * (integral + mantissa);    

代码需要通过 NaN 和 Inf 检查进行改进,并且可能需要将“double”替换为“decimal”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi 扩展到 C# 的相关文章

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

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 在具有 5M+ 行的表上使用 ORDER 和 LIMIT 优化 SELECT ... UNION ... 查询

    我有一个大约 5M 行数据 文章 的表 我有以下查询 用于在两种不同语言的文章标题中进行全文搜索 问题是它需要大约 15 秒才能执行 MySQL version 5 6 29 log 这是查询 SELECT id title title f
  • Glassfish 5 忽略 JAXB @XmlJavaTypeAdapter 注释?

    我刚刚从 Glassfish 4 切换到 Glassfish 5 我注意到 Glassfish 不再调用我的 DateTimeAdapter 类的 unmarshal 方法 它在 Glassfish 4 中工作正常 Web 服务类接收 js
  • 当 url 以 & 符号结尾时.NET WebApi 中断

    我有一个 ApiController 例如 Home 控制器 其操作 Test 接受两个参数 test1 和 test2 两者都具有默认值 System Web Http HttpGet public ActionResult Test i
  • 如何在 Java 中弹出卷?

    如何使用 Java 跨平台 弹出 卷 我有一个程序可以在可移动驱动器 USB 存储卡读卡器 上执行一些操作 一旦完成 我希望该程序弹出 卸载 删除 取决于我们正在谈论的操作系统术语 存储卡 有没有可靠的跨平台方法来做到这一点 可能不是您正在
  • Java 和 C/C++ 程序之间的命名管道

    我想在Windows中使用命名管道在用Java和C编写的两个应用程序之间进行通信 通常我使用套接字连接来做到这一点 但现在我必须取消这个想法并寻找新的解决方案 我读到 java 中的命名管道只能在 JVM 内部可见 这是真的吗 有没有办法在
  • 自动生成问题处理

    这更多的是一种观察 而不是一个真正的问题 MS Access 以及一般的 VBA 非常缺少一个可以自动生成错误处理代码以及在发生错误时可以显示行号的工具 你找到解决办法了吗 它是什么 我刚刚意识到 自从几年前找到这个基本问题的正确答案以来
  • 页面重新加载后如何维护复选框切换的 div 的状态?

    我有一个 div 当选中复选框时出现 并在未选中时隐藏 如果表单有错误 页面会重新加载 并且即使在提交之前选中了该复选框 div 也会显示为隐藏 我可以添加对 onLoad 事件的调用 但是是否有更简洁的方法来确保页面重新加载后 根据复选框
  • IEnumerable 到字符串[重复]

    这个问题在这里已经有答案了 我以前从未偶然发现过这一点 但现在我遇到了 并且很惊讶我找不到一种真正简单的方法来转换IEnumerable
  • 合并两列中两个sql查询的结果

    Query 1 SELECT COUNT A EMPNO AS PRESENT FROM ERPDATA NIITESS DBO ZEMP MASXST WEB AL A INNER JOIN PPA EVENTWISEEMPLOYEEMA
  • Rails 4 嵌套表单字段未保存在数据库中

    我有用于输入专辑以及属于专辑的歌曲的表格 专辑正在保存到数据库 但个别歌曲没有保存 相册模型 class Album lt ActiveRecord Base belongs to user has many songs dependent
  • 在时间序列python中查找条件局部最小值

    对于时间序列数据集 A 如何找到每个 ID 的局部最小值 最低点值 本地分钟 B 如何找到比每个局部最小值大 2 的任何后续值 本地分钟 2 import pandas as pd df pd DataFrame id 1 1 1 1 1
  • 如何获取我不拥有的分支的未合并拉取请求?

    我需要在 NServiceBus 存储库中提取特定的拉取请求 尚未处理到主流中 https github com johnsimons NServiceBus commit d8524d53094e8181716e771c1023e9681
  • Scala future 的理解失败

    我有三个连续的 Future 并在这样的理解中使用 val comF for f1 lt future1 f2 lt future2 f3 lt future3 yield something comF onSuccess comF onF
  • 如何从 HAR 文件获取总网页响应时间?

    在下图中 我想要网页的总响应时间 我在文件里好像找不到示例 HAR 文件 即本例中的 38 79s 有谁知道如何得到这个 我将使用 Selenium 以及 Firebug 和 NetExport 来导出 HAR 文件 但现在我正在尝试手动执
  • 使用 JavaScript 访问跨域 iframe 元素

    我的 html 页面中有一个 iframe 我想访问此 iframe 中打开的页面中的一些内容 table border 1 width 100 height 100 tr td td tr table 在此网页的源代码中 h1 Angel
  • 由于 Android Gradle 插件需要 Java 11 才能运行,Flutter 应用程序无法运行。您当前使用的是 Java 1.8

    我正在尝试制作一个颤振应用程序 但我不断收到此错误 What went wrong A problem occurred evaluating project app gt Failed to apply plugin com androi
  • 如何迭代动态对象数组并在测试中使用每个对象作为参数?

    一个月前我开始了我的空手道冒险之旅 我有一个简单的 GET 测试 名为获取所有汽车 feature显示当前可用的汽车列表 brandName BMW id 1 winterTires false modelName X5 brandName
  • 如何获取更新剪贴板的应用程序的进程ID或名称?

    我正在用 C 创建一个剪贴板管理器 有时我会遇到剪贴板被某些应用程序设置为空的情况 这发生在例如Excel取消选择刚刚复制的内容时 所以我需要弄清楚剪贴板是否为空 但是如何获取更新剪贴板的应用程序名称 我希望我能以某种方式得到HWnd更新剪
  • 在Python中加入int作为列表

    我的输入现在看起来像这样 6 7 5 2 9 9 7 1 5 6 7 1 2 0 6 3 3 8 8 0 5 1 2 3 我想制作一个如下所示的列表 675299 71567 1206338 805123 我怎样才能做到这一点 将数字列表转
  • Delphi 扩展到 C#

    如何将浮点 10 字节十六进制字符串 Delphi 中的扩展数据类型 转换为 C 数据类型 例如 00 00 00 00 00 00 00 80 ff 3f在德尔福1 遇到了同样的问题 分享我的解决方案 有人会觉得有用 var extend