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

Python中如何不先转字符串直接获取二进制数字数组?

要得到int或bool类型的二进制数组,只需要在生成数组时对每个二进制位的字符串做类型转换即可,以下是具体实现:

生成int类型的二进制数组

把每个二进制位的字符转成整数0或1,修改你的代码如下:

ascii_codes = list("ABCD".encode('ascii'))
int_bin_arr = list(map(lambda x: [int(bit) for bit in format(x, '08b')], ascii_codes))

执行后int_bin_arr的结构是每个ASCII码对应一个由8个整数(0/1)组成的列表,比如A对应[1,0,0,0,0,0,0,1]。

生成bool类型的二进制数组

如果需要布尔值数组,直接判断每个二进制位字符是否为'1'即可:

ascii_codes = list("ABCD".encode('ascii'))
bool_bin_arr = list(map(lambda x: [bit == '1' for bit in format(x, '08b')], ascii_codes))

此时每个二进制位会变成True(对应1)或False(对应0),比如A对应[True, False, False, False, False, False, False, True]。

更高效的位运算实现(可选)

如果追求性能,也可以用位运算直接提取每个二进制位,避免字符串转换:

def get_int_bits(num):
    return [(num >> i) & 1 for i in reversed(range(8))]

ascii_codes = list("ABCD".encode('ascii'))
int_bin_arr = list(map(get_int_bits, ascii_codes))

这种方法直接通过移位和按位与操作获取每个位的整数,不需要处理字符串,效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:48:14