如何在 Python 中将表示二进制分数的字符串转换为数字

2024-02-23

假设我们有一个表示二进制分数的字符串,例如:

".1"

以十进制数表示为 0.5。 Python 中是否有一种标准方法可以将此类字符串转换为数字类型(无论是二进制还是十进制并不严格重要)。

对于整数,解决方案很简单:

int("101", 2)
>>>5

int() 采用可选的第二个参数来提供基数,但 float() 则不然。

我正在寻找功能上与此等效(我认为)的东西:

def frac_bin_str_to_float(num):
    """Assuming num to be a string representing
    the fractional part of a binary number with
    no integer part, return num as a float."""
    result = 0
    ex = 2.0
    for c in num:
        if c == '1':
            result += 1/ex 
        ex *= 2
    return result

I think这就是我想要的,尽管我很可能错过了一些边缘情况。

Python 中有内置的或标准的方法可以做到这一点吗?


以下是表达相同算法的更简短的方式:

def parse_bin(s):
    return int(s[1:], 2) / 2.**(len(s) - 1)

它假定字符串以点开头。如果您想要更通用的东西,以下将处理整数和小数部分:

def parse_bin(s):
    t = s.split('.')
    return int(t[0], 2) + int(t[1], 2) / 2.**len(t[1])

例如:

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

如何在 Python 中将表示二进制分数的字符串转换为数字 的相关文章

随机推荐

  • 假“点击”来激活 onclick 方法

    我有一个元素onclick method 我想在另一个函数中激活该方法 或者 假装单击该元素 这可能吗 选择元素后 您可以调用 click document getElementById link click see https devel
  • apache 如何知道 SAML 响应已通过身份验证

    我是 Apache 和 SAML 的新手 我的 my app httpd conf 文件中有以下配置 它将未经身份验证的请求重定向到正常工作的 OKTA
  • 为什么此查询会在 Oracle 中产生 MERGE JOIN CARTESIAN?

    这是我的查询 select count from email prod junc j inner join trckd prod t5 on j trckd prod sk t5 trckd prod sk inner join prod
  • 如何在 Xamarin.Forms 中的网格中启用边框

    我正在 Xamarin Forms 中构建网格 我想添加像表格一样的边框 我以为可以在定义行和列时添加边框 但失败了 谁能帮我 这是我当前的代码 Grid grid new Grid VerticalOptions LayoutOption
  • 如何在 C# 中使用 FILE_ATTRIBUTE_TEMPORARY 创建文件?

    如何在 C 中使用 FILE ATTRIBUTE TEMPORARY 创建文件 所以将数据存储在Ram中但能够将其用作普通文件 我相信你必须使用 P Invoke 来调用本机CreateFile然后使用文件流 安全文件句柄 文件访问 htt
  • SQL Server 返回意外的周数

    我的表中有一些订单 2011 年的最后订单日期是 12 月 20 日 我使用 sql 命令来计算给定一周内的订单数 SELECT CONVERT VARCHAR 3 DATENAME week convert datetime order
  • ASP.NET 如何知道在回发期间触发哪个事件?

    在回发期间 EVENTTARGET表单变量保存name of the control发出回发 如果控件支持多个服务器端事件 ASP NET 如何知道要为该控件触发哪个事件 正如 Wiktor 提到的 ASP Net 中的许多控件已经为您以某
  • Inno Setup - 如何本地化组件和类型名称?

    如何本地化组件和类型名称 例如 Languages Name eng MessagesFile Idiomas English isl Name spa MessagesFile Idiomas Spanish isl 如果我选择英语 Ty
  • iOS CPU 配置文件:为什么这个线程会占用 99.9% 的 CPU?

    有时 当我加载表视图时 除了让表视图显示之外 我没有故意执行任何活动 我会等待几秒钟 然后 CPU 使用率就会飙升 我怎样才能找到原因 为什么这个线程会占用 99 9 的 CPU 我不知道 但这里有一些想法 负责的图书馆是UIKit 所以看
  • 暴露 Google Container Engine 中的两个端口

    是否可以在 Google 容器引擎中创建一个公开两个端口的 Pod 端口 8080 正在侦听传入内容 端口 80 将此内容分发给客户端 Google 给出了以下创建 Pod 的命令作为示例 kubectl run hello node im
  • JavaScript JSON 解析器告诉错误位置

    我在解析通过 WebSocket 接收的 JSON 时遇到了一些麻烦 原始问题 解析通过 WebSocket 接收到的 JSON 会导致错误 https stackoverflow com questions 7116035 parse j
  • 枚举类型的复选框列表 MVC Razor

    在我的 c net MVC 应用程序中 我想显示枚举类型的复选框列表 我有一个枚举类型 Flags public enum ModeType Undefined 0 Read 1 Edit 2 我的模型是 Public TrainingMo
  • https 设置后 django 站点 ERR_SSL_PROTOCOL_ERROR

    所以我正在尝试部署我的网站并且基本上尝试过 python manage py check deploy 并遵循它告诉我的一切 WARNINGS security W004 You have not set a value for the S
  • 使用部分字符串 lua 查找完整字符串

    我试图在表中查找整个字符串而不编写完整的字符串 Example maintable SecondString FirstString c First 我怎样才能使用字符串c无需输入整个字符串名称即可查找 FirstString 的完整名称
  • 带有 Bootstrap 布局的 jQuery UI 可拖动

    jQuery 可拖动元素位于引导样式列 col 下 例如 我有两个 row每列分为 4 列 col md 3 我试图将第一行列拖动到第二行可放置列上 但是当我拖动 Drag 元素时 它们总是位于 可放置 元素下方 我无法使用 Bootstr
  • Flutter ScreenState Dispose 方法异常

    当我尝试在颤动中从一个屏幕导航到另一个屏幕时 我收到一个异常 指出我要更改的 ScreenState 不会调用super dispose in its dispose方法 然而 被覆盖的dispose方法明确调用super dispose
  • 使用 l20n 本地化属性

    我想本地化一个placeholder具有 L20N 属性 我在他们的文档中找不到任何内容 并且这样做 毫不奇怪 不起作用
  • Dropzone上传的文件同名

    我有一个带有 dropzone 的普通表单 所有值和文件都上传到服务器 但是当我通过打印 FILES 变量检查它时 所有上传的文件与最后上传的文件具有相同的名称和扩展名 但具有正确的 mime 每个文件的类型 因此 当我上传具有不同文件类型
  • OpenCV 读取不起作用

    I have loop in my C code to open and process a set of images One of those is https i stack imgur com rUJnp gif https i s
  • 如何在 Python 中将表示二进制分数的字符串转换为数字

    假设我们有一个表示二进制分数的字符串 例如 1 以十进制数表示为 0 5 Python 中是否有一种标准方法可以将此类字符串转换为数字类型 无论是二进制还是十进制并不严格重要 对于整数 解决方案很简单 int 101 2 gt gt gt