Python中字符串和二进制互转

最近在搞图形相关的东西,有时候操作涉及到每个 比特 的操作,所以必须实现一个方法(将字符串二值化),就是把字符串转换成为二进制形式。搜索了一些相关的实现,但是本篇只对两种进行介绍,并且个人推荐第二种。
        第一种实现方式,使用bitarray库实现

from bitarray import bitarraydef str2bitarray(s):ret = bitarray(''.join([bin(int('1' + hex(c)[2:], 16))[3:] for c in s.encode('utf-8')]))return retdef bitarray2str(bit):return bit.tobytes().decode('utf-8')

如果你的实践能力比较强的化,在你复制或者写上述代码的之前应该是控制台界面进行pip install bitarray安装操作,但是吧,安装执行结果如下图所示:

        我是用的是国内的镜像,而且这个ERROR的重点是没有VS的C++依赖不啦不啦…,我不喜欢这种依赖性特别强的,索性放弃第一种实现。
        第二种实现方式::
为什么我推荐使用这种方式呢?因为我喜欢这种尽量不安装第三方依赖的方式,更加轻量化。
代码实现如下:

def encode(s):return ' '.join([bin(ord(c)).replace('0b', '') for c in s])def decode(s):return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])var1 = encode("Hello World , 你好 世界。")print(var1)print(decode(var1))var1Arr = var1.split(" ")for i in range(len(var1Arr)):print(var1Arr[i])

运行结果如下:

可以看出,这里就是把字符转换成了二进制类型,每个二进制类型的数据之间用空格隔开。

中文对应的二进制数据占用两个字节,英文占用的是一个字节。

Python中字符串和二进制互转相关推荐

  1. python中字符串

    目录 1.字符串 2.什么叫字符串驻留机制呢? 3.驻留机制的几种情况(交互模式) 4.sys中的intern方法强制2个字符串指向同一个对象 5.PyCharm对字符串进行了优化处理(所以上述两个例 ...

  2. Python中字符串的驻留机制和常用方法

    在python中字符串是基本数据类型,是一个不可变的字符序列. 字符串的驻留机制 使用三种不同的赋值方式赋值同一个字符串 a = 'python' b = "python" c = ...

  3. 站长在线Python精讲:Python中字符串编码转换encode编码和decode解码详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中字符串编码转换:encode编码和decode解码详解>.本知识点主要内容有:常用编码简介.使用encode( ...

  4. Python中字符串的超细解析

    一.python中的字符串: 字符串到底是什么呢: 在python中字符串是基本数据类型,是一个不可变的字符序列 1.代码如下: 示例: a='hello,hello' print(a.index(' ...

  5. python如何小写p转换p_Python进阶---python 中字符串大小写转换

    python中字符串的大小写转换和判断字符串大小写的函数小结: 一.pyhton字符串的大小写转换, 常用的有以下几种方法: 1.对字符串中所有字符(仅对字母有效)的大小写转换,有两个方法: prin ...

  6. python中字符串的几种表达方式(用什么方式表示字符串)

    今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 > ...

  7. Python中字符串常用处理函数

    ** Python中字符串常用处理函数 ** 1.len( )函数 用len( )函数计算字符串的长度 2.strip( )函数 删除字符串两边的空白符(包括:'\n'.'\t'.'\r') 注:只能 ...

  8. python中abc属于字符串吗_在Python中,字符串s = 'abc',那么执行表达式s+'d'之后,s的打印结果是( )。...

    [单选题]当知道条件为真,想要程序无限执行直到人为停止的话,可以需要下列哪个选项? [单选题]Python3解释器执行 for i,v in enumerate([0,1,2],2):print(i, ...

  9. python中字符串大小写转换常用操作

    python中字符串的大小写转换操作 方法名 操作说明 upper() 把字符串中的字符全部转换为大写 lower() 把字符串中的字符全部转换为小写 swapcase() 把原字符串中的字符,大写变 ...

最新文章

  1. 多态定义、多态实现、多态分类。
  2. ios mdm更新应用_因使用MDM下架的家长控制应用OurPact重返App Store
  3. 解决ubuntu16.E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
  4. python 等值线 标注 间距、控制_python - Matplotlib-Contourf-如何使刻度线间距不均匀? - 堆栈内存溢出...
  5. API网关Kong(二):Kong与Kubernetes集成的方法
  6. Java面试题(亲身经历)
  7. C语言keywordstatic的绝妙用途
  8. 侧边栏_第四课 侧边栏和过滤器
  9. 金融数据分析之公司年报会计师事务所信息批量提取
  10. php小程序 b支付回调视频教程,Laravel教程: 3分钟实现小程序微信支付接入(下)——回调发货逻辑...
  11. 2023年数据结构考研知识梳理视频哪里有
  12. 使用python读写xlsx格式中的数据【xlrd、pywin32】
  13. 在RStudio中调用python包
  14. ThinkPHP5房屋中介管理系统
  15. 浙江行游14---千岛湖,清凉的世界里
  16. communicate(communicate with sb等于)
  17. 如何将PDF文件中的繁体字转成简体字?
  18. 电商大数据日志收集系统之EFK
  19. Golang seelog 使用入门简介
  20. 断言(assert)方法

热门文章

  1. STM32---RESET按键功能
  2. 推荐一款免费易用的 RPA机器人
  3. java的整数类型_java整数类型
  4. 2022-雨课堂-工程伦理期末考试答案
  5. 选择1KG轻簿的笔记本
  6. 电脑安装操作系统出现reboot and select proper boot device
  7. 如何用java读取并解析geojson文件
  8. 虚树——P2495 [SDOI2011]消耗战
  9. 智慧城市水质在线蓝绿藻监测传感器
  10. dpdk基础教程——流水线模型 ip_pipeline