У меня есть список чисел в диапазоне 0-1023. Я хотел бы преобразовать их в целые числа, так что 1023 отображает до -1, 1022 карт до -2 и т. Д., Тогда как 0, 1, 2, .... 511 остаются неизменными.Передача десятичного целого числа без знака в целое число со знаком в python
Я придумал простой:
def convert(x):
return (x - 2**9) % 2**10 - 2**9
есть лучший способ?
В некоторых языках программирования '%' оператор дает отрицательный (или нулевое) значение для отрицательного левого операнда , поэтому код можно было бы сделать более ясным путем изменения '(x - 2 ** 9)' to '(x + 2 ** 9)'. Помимо этого, это кажется разумной реализацией. – Fraxtil