python中如何存储以及使用二进制数据进行运算(一)

1.前言

在课题任务中遇到了需要处理图像的Census变换,然后输出汉明码的问题,那么汉明码是一串二进制序列,并且要用矩阵的形式存储,矩阵中的每一个元素对应着一串汉明码。遇到以下几个问题:

  1. 汉明码作为一串二进制序列如何存储
  2. 能否以矩阵的形式进行存储
  3. 如何对这串汉明码进行异或运算

2.二进制序列的存储

  • 一想到二进制,我首先是有点头大,因为并不经常接触,甚至不知道如何存储,所以首先想到了用十进制的数字去表示,100就是一百,10000就是一万,然后用1万去代表10000,但是这样的问题是表示长度受限制,而且万一遇到用0开头的就无法表示,所以查阅资料后发现二进制一般是使用字符串的格式去存储,有了这个突破点,接下来的问题就好解决了许多。
    用于转换十进制数字到二进制的函数是bin()
    用于迭代生成长字符串的函数时 my_str=f’{str_1}{str_2}’ 这种方法速度很快,即使字符串很长,限于python3.6以上,其他版本也有许多字符串拼接函数,但是本文不再讨论
'''10进制转换2进制'''
my_bin=bin(5)
print(my_bin)
#输出  0b101
'''二进制字符串的生成'''
my_bin=''
for i in range(5):
	my_bin=f'{my_bin},{str(i)}{str(i+1)}'
print(my_bin)
#输出 ,01,12,23,34,45
  • 接下来问题又出现了,由于处理的数据时图像,每一个区域对应一个汉明码,如何将这些汉明码有组织的组成一个矩阵呢,查阅资料后,发现可以使用二维列表进行存储,具体方法如下
my_list=[[ '  '   for i in range(0,5)]for i in range(0,5)]
#生成结果是一个空的二维的字符串列表
my_list[0][4]='1'
my_list[3][1]='01101'
#['  ', '  ', '  ', '  ', '1']
#['  ', '  ', '  ', '  ', '  ']
#['  ', '  ', '  ', '  ', '  ']
#['  ', '01101', '  ', '  ', '  ']
#['  ', '  ', '  ', '  ', '  ']

  • 那么这样就完成了二进制数据的结构化存储
  • 下一篇介绍如何使用结构化的二进制数据进行运算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值