Kako pretvoriti Int v bajte v Pythonu?

Objekt int lahko uporabite za predstavitev iste vrednosti v obliki bajta. Celo število predstavlja bajt in je shranjeno kot matrika z najpomembnejšo števko (MSB), shranjeno na začetku ali koncu matrike.

1. način: int.tobytes()

Vrednost int je mogoče pretvoriti v bajte z uporabo metode int.to_bytes(). Metoda je priklicana na vrednost int, Python 2 je ne podpira (zahteva najmanj Python3) za izvajanje.

Sintaksa: int.to_bytes(dolžina, vrstni red bajtov)

Argumenti :

dolžina – želena dolžina matrike v bajtih.

byteorder – vrstni red matrike za izvedbo pretvorbe int v bajte. byteorder ima lahko vrednosti kot eno od obeh malo kjer je najpomembnejši bit shranjen na koncu in najmanj na začetku, oz velik , kjer je MSB shranjen na začetku in LSB na koncu.

Izjeme:

OverflowError se vrne v primeru, da dolžina celoštevilske vrednosti ni dovolj velika, da bi se lahko prilagodila dolžini matrike.

Naslednji programi ponazarjajo uporabo te metode v Pythonu:

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

Izhod

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

Izhod

b'
x00x00x00x00' 

2. način: Pretvarjanje celega števila v niz in niza v bajte

Ta pristop deluje in je združljiv v obeh različicah Pythona, 2 in 3. Ta metoda ne vzame dolžine niza in vrstnega reda bajtov kot argumenta.

  • Celoštevilsko vrednost, predstavljeno v decimalni obliki, je mogoče najprej pretvoriti v niz s funkcijo str(), ki kot argument sprejme celoštevilsko vrednost, ki jo je treba pretvoriti v ustrezen ekvivalent niza.
  • Ta ekvivalent niza se nato pretvori v zaporedje bajtov z izbiro želene predstavitve za vsak znak, ki kodira vrednost niza. To naredi metoda 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)>

Izhod

b'5'