我想为学校项目将 Python 中的一种编码转换为另一种编码。但是,我正在翻译的编码将在第一位的编码中添加填充。
如何将二进制数字序列向左移动一位,以便它来自:
00000001 11001100 01010101 等等
到
00000011 10011000 10101010 等等
那么最终结果的最低位将是前者的最高位数?
我知道这在python 2.6中很容易实现.但是在Python 2.5中最简单的方法是什么?
x = "This is my string"
b = to_bytes(x) # I could do this easily in 2.7 using bin/ord 3+ could use b"my string"
print b
Run Code Online (Sandbox Code Playgroud)
有什么建议?我想拿x并把它变成
00100010010101000110100001101001011100110010000001101001011100110010000001101101011110010010000001110011011101000111001001101001011011100110011100100010
问题:生成大型二进制字符串(长度 2000+)。动作要快,因为该generateRandom()函数将在算法中被调用300,000次。
尝试的解决方案:生成 3 或 4 个二进制数并将它们全部附加在一起 500 次。这太慢了。
对 random.random() 进行一次调用并将其乘以一个巨大的数字。转换为二进制一次即可完成。这适用于较小的数字,但由于二进制字符串必须具有一定的长度,因此要转换为二进制的数字必须非常巨大(2 ** len(binString))。
当前代码(适用于较小的数字):
binaryRepresentation = ''
binaryRepresentation += bin(int(random.random() * (2 ** binLength)))[2:].zfill(binLength)
Run Code Online (Sandbox Code Playgroud)
我需要帮助修复的错误:此调用会抛出一个“长整型太大,无法转换为浮点数”和大量数字。有没有办法使整个算法更高效或使这个大数字可以转换为浮点数?
谢谢你!
我正在尝试解码位于.txt文件中的二进制文件,但我卡住了.我没有看到任何可能出现的可能性.
def code(): testestest
ascii = {'01000001':'A', ...}
binary = {'A':'01000001', ...}
print (ascii, binary)
def encode():
pass
def decode(code,n):
f = open(code, mode='rb') # Open a file with filename <code>
while True:
chunk = f.read(n) # Read n characters at time from an open file
if chunk == '': # This is one way to check for the End Of File in Python
break
if chunk != '\n':
# Process it????
pass
Run Code Online (Sandbox Code Playgroud)
如何获取.txt文件中的二进制文件并将其输出为ASCII?