📜  如何在Python中将有符号整数转换为无符号整数?

📅  最后修改于: 2022-05-13 01:54:58.233000             🧑  作者: Mango

如何在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