Hvordan Bytt 8-Byte Big Endian i Python

Forskjellige datamaskiner og operativsystemer følger ulike konvensjoner om betydningen av etterfølgende byte koder en enkelt numerisk verdi (vanligvis et heltall). I big-endian miljøer, er den første byte den mest signifikante en; i små-endian miljøer, er den første byte den minst signifikante en. Du kan skrive kode i programmeringsspråket Python som bytter rekkefølgen av de enkelte bytes som koder en 8-byte numerisk verdi. En slik transformasjon vil konvertere en big-endian representasjon i lille-endian, og vice versa.

Bruksanvisning

1 Socket 8-byte verdien du ønsker å bytte til en Python "bytearray", som i følgende eksempelkode:

myByteList = [4,67,32,210,21,90,128,255]

myByteArray = bytearray (myByteList)

2 Iterere over den første halvparten av de åtte elementene i bytearray, som i følgende eksempelkode:

for jeg er innenfor rekkevidde (4):

3 Behandle hver bytearray element ved å bytte den med sitt speilbilde i den andre halvdelen av bytearray, som i følgende eksempelkode:

for jeg er innenfor rekkevidde (4):

temp = myByteArray [8-i + 1]

myByteArray [8-i + 1] = myByteArray [i]

myByteArray [i] = temp

Ved slutten av den "for" løkke, den bytearray vil ha blitt fullstendig byttet.