【发布时间】:2014-02-20 13:27:48
【问题描述】:
我有一个 0-1023 范围内的数字列表。我想将它们转换为整数,以便 1023 映射到 -1,1022 映射到 -2 等等。而 0、1、2、...511 保持不变。
我想出了一个简单的方法:
def convert(x):
return (x - 2**9) % 2**10 - 2**9
有没有更好的方法?
【问题讨论】:
-
在某些编程语言中,
%运算符为负左操作数生成负(或零)值,因此可以通过将(x - 2**9)更改为(x + 2**9)使代码更清晰。除此之外,这似乎是一个合理的实现。