Python contiene tipos de datos numéricos incorporados como int (enteros), flotantes y complejos. En comparación con la programación en C, Python no tiene enteros con y sin signo como tipos de datos. No es necesario especificar los tipos de datos para las variables en python, ya que el propio intérprete predice el tipo de datos de la variable en función del valor asignado a esa variable. El tipo de datos int en python es simplemente el mismo que el entero con signo. Un entero con signo es un entero de 32 bits en el rango de -(2^31) = -2147483648 a (2^31) – 1=2147483647 que contiene números positivos o negativos. Se representa en notación de complemento a dos. Un entero sin signo es un entero no negativo de 32 bits (0 o números positivos) en el rango de 0 a 2^32-1. Entonces, en este artículo, háganos saber cómo convertir un entero con signo en un entero sin signo en python.
Ejemplo 1: agregue 2^32 (o 1 << 32) a un entero con signo para convertirlo en un entero sin signo
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))
Producción:
4294967196 <class 'int'>
Ejemplo 2: uso del operador de desplazamiento a la izquierda bit a bit (<<)
Desplazamiento a la izquierda bit a bit: realiza la manipulación de bits al desplazar los bits del operando izquierdo del número a la izquierda y llena 0 en los vacíos que quedan como resultado.
Por ejemplo, x << y
La izquierda desplaza el entero ‘x’ con el entero ‘y’ por y lugares. Es lo mismo que multiplicar x por 2 elevado a la potencia de y(2**y).
Python3
signed_integer = -1 # Adding 1<<32 to convert signed to # unsigned integer unsigned_integer = signed_integer+(1 << 32) print(unsigned_integer)
Producción:
4294967295
Ejemplo 3:
Python3
signed_integer = -10 # Adding 1<<32 to convert signed to # unsigned integer unsigned_integer = signed_integer+(1 << 32) print(unsigned_integer)
Producción:
4294967286
Publicación traducida automáticamente
Artículo escrito por greeshmanalla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA