温馨提示×

如何提取二进制字符串

小樊
36
2026-08-17 11:19:09
栏目: 编程语言

“提取二进制字符串”这个需求比较宽泛,下面按常见场景给你几种典型做法,你可以对号入座;如果还有更具体的上下文(比如从文件、网络、图片、日志、串口数据里提取),可以再补充。


一、从普通字符串中提取“看起来像二进制的片段”

示例

"abc 10101010 11110000 xyz"

正则提取(推荐)

import re

s = "abc 10101010 11110000 xyz"
bins = re.findall(r'[01]+', s)
print(bins)

✅ 输出:

['10101010', '11110000']

二、从十六进制字符串中提取并转为二进制字符串

示例

hex_str = "1A3F"
bin_str = bin(int(hex_str, 16))[2:].zfill(len(hex_str) * 4)
print(bin_str)

✅ 输出:

0001101000111111

三、从字节数据(bytes)中提取二进制字符串

Python 示例

data = b'\x0f\xa1'
bin_str = ''.join(f'{b:08b}' for b in data)
print(bin_str)

✅ 输出:

0000111110100001

四、从文件中提取二进制数据

读取为二进制

with open('test.bin', 'rb') as f:
    data = f.read()

bin_str = ''.join(f'{b:08b}' for b in data)

五、从文本中按长度提取二进制字符串

s = "1010101011110000"
chunks = [s[i:i+8] for i in range(0, len(s), 8)]

六、区分“二进制字符串”和“二进制数据”

类型 示例
二进制字符串 "10101010"
二进制数据 b'\xaa'

如果你说的“提取”是:

  • 字符串里找 0/1
  • 把 hex / bytes 转成 0/1
  • 从协议 / 报文 / 日志中解析
  • 从图片 / 串口 / 网络包提取

告诉我具体来源 + 语言(Python / C / Java / Go 等),我可以给你更精确的代码。

0