【问题标题】:Turn Hex Output into Binary w/Max of 53 bits (0 or 1 values)将十六进制输出转换为最多 53 位(0 或 1 个值)的二进制
【发布时间】:2021-02-10 00:57:38
【问题描述】:

我有以下十六进制输出:-0x1.4002000000000p+10

我想将该输出转换为不超过 53 位(0 或 1 个值)的二进制形式。因此,所需的输出是:1.0100000000000010000000000000000000000000000000000000

我尝试了以下代码:

f'{-0x1.4002000000000:0<54b}'

但它返回以下错误:

File "<fstring>", line 1
    (-0x1.4002000000000)
                      ^
SyntaxError: invalid syntax

我做错了什么?

【问题讨论】:

    标签: python binary hex bit


    【解决方案1】:

    Python 不支持小数的十六进制。 “x = 0x1.2”引发和错误。去掉小数位就可以了。

    f'{0x14002:0<54b}'
    

    【讨论】:

    • 成功了!谢谢 ----------> 问题 ----------> 你能解释一下 0 在做什么吗?另外,54b 表示 54 位存储空间?
    • 如果我的 0x14002 值存储在变量中怎么办 --> 假设 var.我试图做 f'{var:0
    • 对于“OBJ:0”或右侧“
    • 如果 x=0x14002,那么 f'{x:0
    • 我没有按照你所说的 54b 表示 54 位存储的意思。 python中的f-string返回一个字符串。每个字符占用一个字节。 “b”与字符串的存储或使用多少内存无关。 “b”是使用内置 bin() 函数进行的转换。
    猜你喜欢
    • 2012-01-06
    • 2013-12-26
    • 1970-01-01
    • 2015-08-25
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    相关资源
    最近更新 更多