Python enthält eingebaute numerische Datentypen wie int(Integers), Float und Complex. Im Vergleich zur C-Programmierung gibt es in Python keine vorzeichenbehafteten und vorzeichenlosen Ganzzahlen als Datentypen. Es ist nicht erforderlich, die Datentypen für Variablen in Python anzugeben, da der Interpreter selbst den Variablendatentyp basierend auf dem dieser Variablen zugewiesenen Wert vorhersagt. Der int-Datentyp in Python ist einfach derselbe wie die vorzeichenbehaftete Ganzzahl. Eine Ganzzahl mit Vorzeichen ist eine 32-Bit-Ganzzahl im Bereich von -(2^31) = -2147483648 bis (2^31) – 1=2147483647 , die positive oder negative Zahlen enthält. Es wird in Zweierkomplementnotation dargestellt. Eine Ganzzahl ohne Vorzeichen ist eine nicht negative 32-Bit-Ganzzahl (0 oder positive Zahlen) im Bereich von 0 bis 2^32-1. Lassen Sie uns in diesem Artikel wissen, wie man in Python eine vorzeichenbehaftete Ganzzahl in eine vorzeichenlose Ganzzahl umwandelt.

Beispiel 1: Fügen Sie 2^32 (oder 1 << 32) zu einer Ganzzahl mit Vorzeichen hinzu, um sie in eine Ganzzahl ohne Vorzeichen umzuwandeln

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))

Ausgabe:

4294967196
<class 'int'>

Beispiel 2: Verwendung des bitweisen Linksverschiebungsoperators (<<).

Bitweise Verschiebung nach links: Es führt eine Bitmanipulation durch, indem es die Bits des linken Operanden der Zahl nach links verschiebt und die als Ergebnis verbleibenden Lücken mit 0 füllt. 

 Beispiel: x << y

Links verschiebt die ganze Zahl 'x' mit der ganzen Zahl 'y' um y Stellen. Es ist dasselbe wie die Multiplikation von x mit 2 hoch 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)

Ausgabe:

4294967295

Beispiel 3:

Python3

signed_integer = -10
  
# Adding 1<<32 to convert signed to
# unsigned integer
unsigned_integer = signed_integer+(1 << 32)
print(unsigned_integer)

Ausgabe:

4294967286