栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

假设

  1. 您会想到2的补码表示法;和,
  2. 通过
    (unsigned long)
    的意思是 32位无符号整数,

那么您只需将其添加

2**32 (or 1 << 32)
为负值即可。

例如,将此应用于-1:

>>> -1-1>>> _ + 2**324294967295L>>> 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 longc_ulong(4294967295L)>>> _.value4294967295L

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/640943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号