如何在 Python 中高效地将二进制转换为 ASCII,反之亦然?
将二进制转换为 ASCII,反之亦然
二进制和 ASCII 之间的转换对于编码和解码数字数据至关重要。以下是在 Python 中有效执行此转换的方法,可解决您提到的挑战:
将字符串转换为二进制
要将字符串转换为二进制,您可以使用:
import binascii bin(int(binascii.hexlify('hello'), 16))
这会将字符串转换为十六进制表示形式,然后转换为二进制形式,产生与您相同的输出
将二进制转换为字符串
要从二进制转换为字符串,请使用:
n = int('0b110100001100101011011000110110001101111', 2) binascii.unhexlify('%x' % n)
这会将二进制字符串转换为十六进制值,然后将其解码为原始字符串。
Python 3.2兼容性
在 Python 3.2 及更高版本中,您可以使用以下方法:
bin(int.from_bytes('hello'.encode(), 'big')) n = int('0b110100001100101011011000110110001101111', 2) n.to_bytes((n.bit_length() + 7) // 8, 'big').decode()
这些方法利用 int.from_bytes() 和 int.to_bytes() 函数,提供处理二进制数据的有效方法。
支持 Unicode 字符 (Python 3)
要在 Python 3 中处理 Unicode 字符,请使用:
def text_to_bits(text, encoding='utf-8', errors='surrogatepass'): bits = bin(int.from_bytes(text.encode(encoding, errors), 'big'))[2:] return bits.zfill(8 * ((len(bits) + 7) // 8)) def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'): n = int(bits, 2) return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '<pre class="brush:php;toolbar:false">import binascii def text_to_bits(text, encoding='utf-8', errors='surrogatepass'): bits = bin(int(binascii.hexlify(text.encode(encoding, errors)), 16))[2:] return bits.zfill(8 * ((len(bits) + 7) // 8)) def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'): n = int(bits, 2) return int2bytes(n).decode(encoding, errors) def int2bytes(i): hex_string = '%x' % i n = len(hex_string) return binascii.unhexlify(hex_string.zfill(n + (n & 1)))
这些函数使用指定的编码和错误处理对文本进行编码和解码,确保正确处理 Unicode字符。
单源 Python 2/3 兼容版本
此代码与 Python 2 和 3 兼容:
此代码处理两个 Python 版本,同时为二进制和 ASCII 转换提供一组一致的函数。
以上是如何在 Python 中高效地将二进制转换为 ASCII,反之亦然?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...
