首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中将一个值范围映射到另一个范围?

如何在python中将一个值范围映射到另一个范围?
EN

Stack Overflow用户
提问于 2013-02-27 02:07:55
回答 3查看 1.4K关注 0票数 0

想要在python中做与此等效的操作(以及反向toByte),那么在python中如何映射?

代码语言:javascript
复制
int toInt(byte b) {
  return map(b, 0, 255, -128, 127);
}

我会试着

代码语言:javascript
复制
int([representation],base)-128 

但是我不知道什么是表示和基础

EN

回答 3

Stack Overflow用户

发布于 2013-02-27 02:34:23

如果我很好地理解你的问题,int([representation],base)-128。如果由于某种原因对某个函数不满意,可以尝试使用python字典结构

票数 3
EN

Stack Overflow用户

发布于 2013-02-27 02:30:31

有不止一种方法可以做到这一点。您可以使用显式映射:

代码语言:javascript
复制
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")

或者,您可以使用数学:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2013-02-27 02:49:20

这不是很简单吗:

代码语言:javascript
复制
def toInt(b):
    return b-128

def toByte(i):
    return i+128
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15096175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档