Hur konverterar man Int till byte i Python?

Ett int-objekt kan användas för att representera samma värde i bytens format. Heltalet representerar en byte, lagras som en array med dess mest signifikanta siffra (MSB) lagrad i antingen början eller slutet av arrayen.

Metod 1: int.tobytes()

Ett int-värde kan konverteras till byte med hjälp av metoden int.to_bytes(). Metoden anropas på ett int-värde, stöds inte av Python 2 (kräver minst Python3) för exekvering.

Syntax: int.to_bytes(längd, byteorder)

Argument :

längd – önskad längd på arrayen i byte .

byteorder – ordning på arrayen för att utföra konvertering av en int till byte. byteorder kan ha värden som antingen liten där den mest signifikanta biten lagras i slutet och minst i början, eller stor , där MSB lagras vid start och LSB i slutet.

Undantag:

OverflowError returneras om heltalsvärdets längd inte är tillräckligt stor för att rymmas i matrisens längd.

Följande program illustrerar användningen av denna metod i Python:

Python3




# declaring an integer value> integer_val> => 5> > # converting int to bytes with length> # of the array as 2 and byter order as big> bytes_val> => integer_val.to_bytes(> 2> ,> 'big'> )> > # printing integer in byte representation> print> (bytes_val)>

Produktion

b'x00x05' 

Python3




# declaring an integer value> integer_val> => 10> > # converting int to bytes with length> # of the array as 5 and byter order as> # little> bytes_val> => integer_val.to_bytes(> 5> ,> 'little'> )> > # printing integer in byte representation> print> (bytes_val)>

Produktion

b'
x00x00x00x00' 

Metod 2: Konvertera heltal till sträng och sträng till byte

Detta tillvägagångssätt fungerar är kompatibelt i både Python-versionerna 2 och 3. Denna metod tar inte längden på arrayen och byteordningen som argument.

  • Ett heltalsvärde representerat i decimalformat kan konverteras till sträng först med funktionen str() , som tar som argument det heltalsvärde som ska konverteras till motsvarande strängekvivalent.
  • Denna strängekvivalent konverteras sedan till en sekvens av byte genom att välja önskad representation för varje tecken, det vill säga kodning av strängvärdet. Detta görs med metoden str.encode().

Python3




# declaring an integer value> int_val> => 5> > # converting to string> str_val> => str> (int_val)> > # converting string to bytes> byte_val> => str_val.encode()> print> (byte_val)>

Produktion

b'5'