【发布时间】:2017-12-18 08:48:32
【问题描述】:
我已将 4 个字符 ATCG 转换为二进制格式,即
00 replacing A
11 replacing T
10 replacing C
01 replacing G
所以一个字符串
AGAGAGAGTGATAGA
转换后的样子
001000100010001011100011001000
一旦我得到这个值,我就会把这个二进制转换成它对应的整数,即
143177928.
问题是,当我想再次回到二进制时,它给了我
0b1000100010001011100011001000
这不是原始字符串的正确表示,因为它省略了 1 之后最左边的所有零。
所以我写了一个实现二进制转换的方法,我知道二进制字符串应该有多长。所以最后我只是从返回的二进制文件中删除 0b 并在最左边添加 0,即
#zeros = length of original binary - length of returned binary (0b removed)
有没有更好的方法来进行这种转换??
我正在用 python 编写代码。
【问题讨论】:
-
是的,问题在于您的编码方案...任何数量的前导零都是相同的二进制数。您只能在字符串表示中将数字“零填充”到固定长度
标签: python string python-2.7 binary