python - 将 10 位无符号整数转换为 python 中的有符号整数

标签 python int uint

我有一个 0-1023 范围内的数字列表。我想将它们转换为整数,以便 1023 映射到 -1,1022 映射到 -2 等。而 0、1、2、....511 保持不变。

我想到了一个简单的:

def convert(x):
    return (x - 2**9) % 2**10 - 2**9

有没有更好的办法?

最佳答案

最简单的解决方案:

def convert(x):
    if x >= 512:
        x -= 1024
    return x

关于python - 将 10 位无符号整数转换为 python 中的有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419306/

相关文章:

python - 从 C 扩展调用 Python 函数的速度成本

python - 查找并替换列表中彼此在某一范围内的数字

c - 将整数的每个数字提取到数组中?

ios - Swift 字典将 [UInt8] 作为值不起作用

将 ASCII 转换为 uint8

python - 使用 Telebot 删除加入 Telegram 群组的消息

python - 有效使用Python map

python - 您如何在这些点之间生成随机 double ?

c - 将整数解析为字符串 C

c - 当尝试打印 UINT_MAX 时,我得到 -1