想要在python中做这个等价的(和逆toByte),你如何在python中映射?
int toInt(byte b) {
return map(b, 0, 255, -128, 127);
}
我会尝试
int([representation],base)-128
但我不知道什么是表示和基础
int([representation],base)-128
如果我理解你的问题。如果您出于某种原因对函数不满意,请尝试使用 python 字典结构
那不就是:
def toInt(b):
return b-128
def toByte(i):
return i+128
有不止一种方法可以做到这一点。您可以使用显式映射:
INT_MAP = {x: x - 128 for x in range(256)}
def to_int(val):
"""Maps an unsigned integer to a signed one (for values up to 256)"""
try:
return INT_MAP[val]
except KeyError:
raise ValueError("val must be a value between 0 and 255")
或者,您可以使用数学:
def to_int(val, max_signed_val=128):
max_val = max_signed_val * 2
assert val < max_val, "val must be less than {:d}".format(max_val)
return val - max_signed_val