如何在Python中将有符号整数转换为无符号整数?
Python包含内置数字数据类型,如 int(整数)、浮点数和复数。与 C 编程相比, Python没有带符号和无符号整数作为数据类型。无需在Python为变量指定数据类型,因为解释器本身根据分配给该变量的值预测变量数据类型。 Python的 int 数据类型与有符号整数相同。有符号整数是在-(2^31) = -2147483648 到 (2^31) - 1=2147483647范围内的 32 位整数,其中包含正数或负数。它以二进制补码表示法表示。无符号整数是 0 到 2^32-1 范围内的 32 位非负整数(0 或正数)。所以,在本文中让我们知道如何在Python中将有符号整数转换为无符号整数。
示例 1:将 2^32(或 1 << 32)添加到有符号整数以将其转换为无符号整数
Python3
signed_integer = -100
# Adding 2^32 to convert signed to unsigned integer
unsigned_integer = signed_integer+2**32
print(unsigned_integer)
print(type(unsigned_integer))
Python3
signed_integer = -1
# Adding 1<<32 to convert signed to
# unsigned integer
unsigned_integer = signed_integer+(1 << 32)
print(unsigned_integer)
Python3
signed_integer = -10
# Adding 1<<32 to convert signed to
# unsigned integer
unsigned_integer = signed_integer+(1 << 32)
print(unsigned_integer)
输出:
4294967196
示例 2:使用按位左移 (<<)运算符
按位左移:它通过将数字的左操作数位向左移动来执行位操作,并在结果左边的空白处填充 0。
例如,x << y
将整数 'x' 和 'y' 整数左移 y 位。它与 x 乘以 2 的 y(2**y) 次幂相同。
蟒蛇3
signed_integer = -1
# Adding 1<<32 to convert signed to
# unsigned integer
unsigned_integer = signed_integer+(1 << 32)
print(unsigned_integer)
输出:
4294967295
示例 3:
蟒蛇3
signed_integer = -10
# Adding 1<<32 to convert signed to
# unsigned integer
unsigned_integer = signed_integer+(1 << 32)
print(unsigned_integer)
输出:
4294967286