You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MicroPython中将字符串转换为二进制位?

MicroPython字符串转二进制位的替代实现

你遇到的错误确实是因为部分MicroPython环境未内置format()函数,以下是两种无需依赖format()的实现方法:

方法一:位运算手动生成二进制位

通过位操作逐个提取字符ASCII码的每一位,拼接成8位二进制字符串,兼容性拉满:

def tobits(s):
    bits = ""
    for c in s:
        ascii_code = ord(c)
        # 从最高位到最低位依次取每一位
        for i in range(8):
            bit = (ascii_code >> (7 - i)) & 1
            bits += str(bit)
    return bits

方法二:利用bin()函数补零(需环境支持bin())

如果你的MicroPython设备支持bin()函数,可以用它生成二进制串后补前导零至8位:

def tobits(s):
    bits = ""
    for c in s:
        # 去掉bin()返回的'0b'前缀
        binary_part = bin(ord(c))[2:]
        # 手动补前导零到8位(避免依赖zfill)
        bits += '0'*(8 - len(binary_part)) + binary_part
    return bits

另外提一句:原函数里for i in c是冗余代码,c本身就是单个字符,直接用ord(c)即可,不需要再遍历。

内容的提问来源于stack exchange,提问作者nerd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:43:25