logo

Jak převést Int na bajty v Pythonu?

Objekt int lze použít k reprezentaci stejné hodnoty ve formátu bajtu. Celé číslo představuje bajt, je uloženo jako pole s nejvýznamnější číslicí (MSB) uloženou buď na začátku nebo na konci pole.

Metoda 1: int.tobytes()



Hodnotu int lze pomocí této metody převést na bajty int.to_bytes(). Metoda je vyvolána na hodnotě int, není podporována Pythonem 2 (vyžaduje minimálně Python3) pro spuštění.

Důležité

Syntax: int.to_bytes(délka, pořadí bajtů)

Argumenty :



délka – požadovaná délka pole v bajtech .

byteorder – pořadí pole pro provedení převodu int na bajty. byteorder může mít hodnoty buď málo kde nejvýznamnější bit je uložen na konci a nejméně na začátku, popř velký , kde je MSB uložen na začátku a LSB na konci.

Výjimky:



OverflowError je vrácena v případě, že délka celočíselné hodnoty není dostatečně velká, aby se vešla do délky pole.

Následující programy ilustrují použití této metody v Pythonu:

Python3




co je automaticky zapojeno v Javě

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

>

>

Výstup

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

přidat do pole java

>

>

Výstup

b'
x00x00x00x00'>

Metoda 2: Převod celého čísla na řetězec a řetězce na bajty

Tento přístup funguje je kompatibilní v obou verzích Pythonu, 2 a 3. Tato metoda nebere jako argumenty délku pole a pořadí bajtů.

jak proměnit řetězec na int
  • Celou hodnotu reprezentovanou v desítkovém formátu lze nejprve převést na řetězec pomocí funkce str() , která jako argument převezme celočíselnou hodnotu, která má být převedena na odpovídající ekvivalent řetězce.
  • Tento ekvivalent řetězce je poté převeden na sekvenci bajtů výběrem požadované reprezentace pro každý znak, což je kódování hodnoty řetězce. To se provádí metodou 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)>

>

>

Výstup

b'5'>