如何将二进制字符串转换为浮点型或双精度型?

2023-12-11

在这个问题中,蜥蜴比尔问道如何显示 float 或 double 的二进制表示.

我想知道的是,给定适当长度的二进制字符串,我如何执行反向操作(在 C# 中)?换句话说,如何将二进制字符串转换为浮点数或双精度数?

作为旁注,是否有任何位字符串不会产生有效的浮点数或双精度数?


编辑:二进制字符串是指由 0 和 1 组成的字符串。

所以,我的输入将是这样的字符串:

01010101010101010101010101010101

我的输出应该是一个浮点数。 (或者,如果字符串中有 64 位,则为双精度值。)


double d1 = 1234.5678;
string ds = DoubleToBinaryString(d1);
double d2 = BinaryStringToDouble(ds);

float f1 = 654.321f;
string fs = SingleToBinaryString(f1);
float f2 = BinaryStringToSingle(fs);

// ...

public static string DoubleToBinaryString(double d)
{
    return Convert.ToString(BitConverter.DoubleToInt64Bits(d), 2);
}

public static double BinaryStringToDouble(string s)
{
    return BitConverter.Int64BitsToDouble(Convert.ToInt64(s, 2));
}

public static string SingleToBinaryString(float f)
{
    byte[] b = BitConverter.GetBytes(f);
    int i = BitConverter.ToInt32(b, 0);
    return Convert.ToString(i, 2);
}

public static float BinaryStringToSingle(string s)
{
    int i = Convert.ToInt32(s, 2);
    byte[] b = BitConverter.GetBytes(i);
    return BitConverter.ToSingle(b, 0);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将二进制字符串转换为浮点型或双精度型? 的相关文章

随机推荐

  • 平板电脑的 Genymotion 屏幕方向问题

    我正在使用 Genymotion 我为 sw800dp 平板电脑和 sw600dp 创建了布局 我希望我的应用程序仅用于肖像 所以我做了什么
  • 通过 XMLHttpRequest 从 HTML5 文件系统上传文件

    尝试上传一些存储在 Google Chrome 文件系统中的图像 但我无法上传图像 知道怎么做吗 服务器收到一个空数组 posttest php 的代码只是 print r POST var xhr new XMLHttpRequest x
  • 无法在 Android 中使用trigger.io 和 parse.com 接收推送通知

    我刚刚开始开发适用于 Android 和 iPhone 的应用程序trigger io and parse com 现在我一直在尝试向应用程序添加推送通知 我从控制面板发送测试推送parse com但我正在测试的 Android 手机上没有
  • XML 文件上的 Regex::captures_iter 比预期慢

    我的第一个小型 Rust 项目涉及在大型 XML 文件上运行正则表达式 extern crate regex use regex Regex use std fs File use std io Read fn main let filen
  • YouTube 视频结束时发生的事件

    我有简单的 html 代码 可以在单击图像后播放 YouTube 视频 div style display none div
  • 是否可以将成员初始化推迟到构造函数主体?

    我有一个类 其中一个对象作为成员 但没有默认构造函数 我想在构造函数中初始化这个成员 但似乎在 C 中我不能这样做 这是课程 include
  • 如何通过group_concat获取的id删除行

    我想从表中删除一些行 首先 我尝试使用子查询 但是当在子查询中使用相同的表时 我无法从表中删除数据 我尝试用另一种方式做到这一点 set list id remove select group concat mra media id fro
  • 从多值列查询不同值

    我正在尝试查询 标签 列中的所有唯一值 标签列中的每一行都可以包含多个值 因此 在不被迫进行规范化的情况下 如何查询多值列 示例行 Networking Professionalism Time Management Communicati
  • 错误 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)

    有人可以帮忙吗 因为我花了一整天的时间试图解决这个问题 我安装了最新的 XAMPP 现在我无法从终端连接到 mysql 我检查了我的 profile 文件 路径似乎没问题 有谁知道发生了什么事以及解决方案是什么 PATH PATH Appl
  • Java 字符串与数组的区别

    我目前很无聊 正在做一些 Java 练习测试 因为我已经用 Java 编程很长时间了 在提出某个问题之后 我现在想知道以下之间的区别 String test1 A B C String test2 new String A B C Stri
  • Windows 上的程序员编辑器用于印度语编辑

    我们将构建一些 J2ME 应用程序和 Java Rails Web 应用程序 它们将具有卡纳达语 一种南印度语言 对于那些对印度不太了解的人来说 UI 这些应用程序的用户界面和数据都将采用卡纳达语 因此 我们需要在源代码中编写包含一些这些语
  • 如何在 C++ 中将 RSA* 打印为字符串?

    如何在 C 中将 RSA 正确打印为字符串 我在用OpenSSL 似乎没有 c str 方法对吧 include
  • JQuery + SVG 对象:正确捕获点击事件

    好的 我正在尝试捕获菜单项上的点击事件 这是我的html
  • 捆绑多个工件进行部署?

    这是在此基础上进行的后续answer 我有一个看起来像的结构 ls service target classes lib maven status surefire reports classes 1194128992 timestamp
  • 在 Ruby on Rails 中链接模型

    我正在构建一个 Rails 应用程序 并且我想要连接两个模型 有一个称为 用户 的模型来处理用户身份验证 例如用户名和密码数据 然后有一个称为 个人资料 的模型 其中包含一个人的位置 描述等 我想链接这些模型 以便每个用户都有一个配置文件
  • 重复捕获组PCRE

    无法理解为什么这个正则表达式 regex101 a z0 9A Z g 捕获所有输入 而这个 regex101 a z0 9A Z g 仅捕获 Func 输入字符串是 Func param1 param2 param32 param54 p
  • java.net 包 - 覆盖 UDP 传输

    我需要重写 DatagramSocket 传输的默认实现 即 PlainDatagramSocketImpl 我发现 java 提供了一种通过 DatagramSocketImplFactory 类来执行此操作的方法 然而 我的要求是在非常
  • 没有找到适合 requestLocationUpdates 的方法

    这是我的 MainActivity java import android app Activity import android app AlertDialog import android app ProgressDialog impo
  • WebView 马拉雅拉姆语 Unicode 复杂/组合字母

    我的 Android 应用程序出现问题 哪个不显示一些特殊字母 即复杂 组合字母 KOOTTAKSHARAM from Malayalam语言 在我的应用程序中 我使用 WebView 加载使用从服务器接收到的 Unicode 字符准备的
  • 如何将二进制字符串转换为浮点型或双精度型?

    在这个问题中 蜥蜴比尔问道如何显示 float 或 double 的二进制表示 我想知道的是 给定适当长度的二进制字符串 我如何执行反向操作 在 C 中 换句话说 如何将二进制字符串转换为浮点数或双精度数 作为旁注 是否有任何位字符串不会产