相关疑难解决方法(0)

将二进制转换为ASCII,反之亦然

使用此代码获取字符串并将其转换为二进制:

bin(reduce(lambda x, y: 256*x+y, (ord(c) for c in 'hello'), 0))
Run Code Online (Sandbox Code Playgroud)

这个输出:

0b110100001100101011011000110110001101111
Run Code Online (Sandbox Code Playgroud)

哪个,如果我把它放到这个网站(在右边的网站上),我得到了我的hello回信息.我想知道它使用什么方法.我知道我可以将二进制字符串拼接成8位,然后将其与相应的值bin(ord(character))或其他方式匹配.真的在寻找更简单的东西.

python binary ascii

72
推荐指数
3
解决办法
21万
查看次数

将Python int转换为big-endian字节串

我有一个非负的int,我想有效地将​​它转换为包含相同数据的big-endian字符串.例如,int 1245427(0x1300F3)应该生成一个长度为3的字符串,其中包含三个字符,其字节值为0x13,0x00和0xf3.

我的整数是35(基数为10)的数字.

我该怎么做呢?

python

56
推荐指数
6
解决办法
10万
查看次数

python处理二进制文件的性能

我正在尝试将YCbCr 文件 从 8 bpp 转换为 10 bpp。

到目前为止,我最好的方法仍然比最基本的 C 实现慢几个数量级。

C 中的朴素方法,运行时间约为 8 秒。相反,让代码在块上运行,可以将时间大大缩短到 1 秒以下。

我很好奇处理二进制文件的标准 python 可以获得什么样的性能。示例文件采用CIF 分辨率,与 1080p 的内容相比“小”。尽管我主要对标准 python 感兴趣,但也可以随意添加 numpy-suggestions。

测试文件可以从以下位置下载

http://trace.eas.asu.edu/yuv/foreman/foreman_cif.7z
Run Code Online (Sandbox Code Playgroud)

sha1sum正确的 10 位输出是

c511dabc793383f7fd0ed69b4bb9b9f89ef73b84
Run Code Online (Sandbox Code Playgroud)

Python:

#!/usr/bin/env python

import array

f_in = 'foreman_cif.yuv'
f_out = 'py_10bpp.yuv'

def bytesfromfile(f):
    while True:
        raw = array.array('B')
        raw.fromstring(f.read(8192))
        if not raw:
            break
        yield raw

with open(f_in, 'rb') as fd_in, \
        open(f_out, 'wb') as fd_out:

    for byte in bytesfromfile(fd_in):
        data = []
        for i …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
1590
查看次数

标签 统计

python ×3

ascii ×1

binary ×1