问题描述
--------------------------- 添加新------------------- ----------
让我在这里填写更多信息:
实际情况是我在环境-A中有这个LONG STRING,需要复制粘贴到环境-B;
不幸的是,environ-A 和environ-B 没有连接(不能相互访问),所以我正在考虑一种编码/解码的方法来表示它,否则对于更多的文件,我必须手动输入字符串----这是缓慢且不可重现的。
有什么建议或小工具推荐吗? 非常感谢!
我在将 SUPER LONG 二进制文件编码为简单形式(如几个数字)时遇到了一个奇怪的问题。
比如说,有一个长字符串只由 1 和 0 组成,例如长度为 1,000 到 100,000 甚至更多数字的“110...011”,我想将此字符串编码为具有较少数字/字符的内容。然后我需要将其反转回原来的 STRING。
目前我正在尝试在 Python 中使用 hex / int 方法来“压缩”这个字符串,然后将它“解压缩”回原始形式。
一个例子是:
1.输入字符串:'110011110110011'
'''
def Bi_to_Hex_Int(input_str,method ):
#2to16
if method=='hex':
string= str(input_str)
input_two= string
result= hex(int(input_two,2))
#2to10
if method=='int':
string= str(input_str)
input_two= string
result= int(input_two,2)
print("input_bi length",len(str(input_two)),"\n output hex length",len(str(result)),'\n method: {}'.format(method) )
return result
res_16 =Bi_to_Hex_Int(gene,'hex')
=='0x67b3'
res_10 =Bi_to_Hex_Int(gene,'int')
== 26547
'''
然后我可以将其反转回来:
'''
def HexInt_to_bi(input_str,method):
if method =='hex':
back_two = bin(int(input_str,16))
back_two = back_two[2:]
if method =='int':
back_two = bin( int(input_str ))
back_two = back_two[2:]
print("input_hex length",len(str(input_str)),"\n output bi length",len(str(back_two)) )
return back_two
hexback_two = HexInt_to_bi(res_16,'hex')
intback_two = HexInt_to_bi(res_10,'int')
'''
但是,这确实有问题,我尝试了大约 500 位字符串:101010...0001(500d),最好的“压缩”结果是大约 127 位十六进制数;
那么有没有更好的方法可以将字符串进一步“压缩”为更少的数字?
**假设 5,000 位字符串由 1s&0s 组成,压缩到 50/100 位数字/字符(甚至更低)** ??
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)