Python中的字节操作

3

我有一个整数。假设:

var = 83 #less than 0xff

我有一个字节。 假设我有一个字节b,我想计算它的整数值。

 b-=var #b as an integer value , possibly by eval(b)?

我想将其转换回字节,Python 怎么做呢?

1个回答

3

如果我理解问题正确,你可以这样做:


>>> chr(ord('x') - 83)
'%'

此处的'x'代表你的字节。

如果你使用的是Python 3.x版本

>>> bytes([ord(b'x') - 83])
b'%'

注意 ord(b'x')b'x'[0] 是相同的。

另一个例子(结果字节不可打印,以 \x00 形式显示):

>>> chr(ord('\x53') - 83)
'\x00'

@JJG 你是把字节存储在字符串或者字节串(Py3k)中,对吗?所以,如果结果可打印,它将会以这种方式显示。 - JBernardo
好的。我遇到了一个错误:ValueError: chr()参数不在范围(256)内。我不知道为什么会出现这种情况。另外,我正在使用Python 2.7。 - user485498
1
@JJG 这是因为您使用的数字小于83,而 chr 无法处理负数。 - JBernardo
@JJG 你可以将负数加上256以实现循环。 - JBernardo
谢谢大家!我想我做到了。我完成了+=256的循环。 - user485498

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接