logo

Kā Python konvertēt Int par baitiem?

Int objektu var izmantot, lai attēlotu vienu un to pašu vērtību baita formātā. Vesels skaitlis apzīmē baitu, tiek saglabāts kā masīvs ar tā nozīmīgāko ciparu (MSB) masīva sākumā vai beigās.

1. metode: int.tobytes()



Int vērtību var pārvērst baitos, izmantojot metodi int.to_bytes(). Metode tiek izsaukta, izmantojot int vērtību, Python 2 to neatbalsta (nepieciešams minimālais Python3) izpildei.

c virkne masīvā

Sintakse: int.to_bytes(garums, baitu secība)

Argumenti :



garums – vēlamais masīva garums baitos .

baitu secība – masīva secība, lai veiktu int konvertēšanu baitos. byteorder vērtības var būt kā vai nu maz kur visnozīmīgākais bits tiek saglabāts beigās un vismazākais sākumā, vai liels , kur MSB tiek saglabāts sākumā un LSB beigās.

Izņēmumi:



OverflowError tiek atgriezta gadījumā, ja veselā skaitļa vērtības garums nav pietiekami liels, lai to iekļautu masīva garumā.

Šīs metodes izmantošanu Python ilustrē šādas programmas:

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

>

direktorija pārdēvēšana
>

Izvade

b'x00x05'>

Python3




1 no 1000
# 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)>

>

>

Izvade

b'
x00x00x00x00'>

2. metode: Vesela skaitļa konvertēšana par virkni un virkni baitos

Šī pieeja darbojas abās Python versijās — 2. un 3. Šajā metodē kā argumenti netiek ņemts vērā masīva garums un baitu secība.

  • Vesela skaitļa vērtību, kas attēlota decimālā formātā, vispirms var pārveidot par virkni, izmantojot funkciju str(), kas kā argumentu izmanto vesela skaitļa vērtību, kas jāpārvērš atbilstošā virknes ekvivalentā.
  • Pēc tam šis virknes ekvivalents tiek pārveidots par baitu secību, izvēloties katrai rakstzīmei vēlamo attēlojumu, kas ir virknes vērtības kodēšana. Tas tiek darīts ar str.encode() metodi.

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

>

>

'eulera numurs java'
Izvade

b'5'>