I have a list of numbers in the range 0-1023. I would like to convert them to integers such that 1023 maps to -1, 1022 maps to -2 etc.. while 0, 1, 2, ....511 remain unchanged.
I came up with a simple:
def convert(x):
return (x - 2**9) % 2**10 - 2**9
is there a better way?
%operator yields a negative (or zero) value for a negative left operand, so the code could perhaps be made clearer by changing(x - 2**9)to(x + 2**9). Aside from that, this seems like a reasonable implementation.