您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在python中将有符号转换为无符号整数

如何在python中将有符号转换为无符号整数

那么您只需将其添加2**32 (or 1 << 32)为负值即可。

例如,将此应用于-1:

>>> -1
-1
>>> _ + 2**32
4294967295L
>>> bin(_)
'0b11111111111111111111111111111111'

假设1表示您希望将-1视为一个1位的实字符串,而假设2表示您希望其中的32个。

但是,除了你,没人可以说你隐藏的假设是什么。例如,如果考虑到1的补码表示形式,则需要应用~前缀运算符。Python整数努力工作,给人一种使用无限宽2的补码表示的幻觉(类似于常规2的补码,但具有无限数量的“符号位”)。

要复制平台C编译器的功能,可以使用以下ctypes模块:

>>> import ctypes
>>> ctypes.c_ulong(-1)  # stuff Python's -1 into a C unsigned long
c_ulong(4294967295L)
>>> _.value
4294967295L

unsigned long在运行此示例的盒子上,C恰好是4个字节。

python 2022/1/1 18:26:21 有327人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶