Lille Endian Binære Alternativer


Windows på IntelAMD er også lite endian, så ingen endianness-konvertering er nødvendig. Nå hvis du kan vise den spesifikke posten og hvor du får binære data fra, blir det lettere å svare. Du kan lese noen form for post fra en fil. Hvis rekordet er erklært slik at det har nøyaktig samme layout som binære data, kan du lese en hel plate samtidig. Hvis ikke, må du lese hvert felt separat. Vanligvis kan du lese poster, eller enkelte felt i en plate, fra en strøm ved hjelp av Hvis dataene kommer fra en TCP-kontakt, kan du for eksempel skrive den inn i en TMemoryStream, som byte. Deretter kan du tilbakestille pekeren til strømmen til begynnelsen og lese dataene som vist. Som David kommenterte, hvis byte kommer over TCP-tilkoblingen i nettverksbyte-rekkefølge, så er det fornuftig å kjøre hvert felt gjennom en av WinSock-funksjonene ntohs () eller ntohl (). etter alt ovenfor, men før elementene i posten blir brukt. ntohs () konverterer 2 byte typer, mens ntohl () konverterer 4 byte typer. For å sende elementer, bruk reverseringsfunksjonene htons () og htonl () på hvert element i posten før du sender dem (separat). FWIW, det er ganske enkelt, i Win32, å endre endianness ved å bruke: Når du overfører binære heltall over et nettverk, er det viktig å sikre at sendings - og mottaksystemene bruker samme format eller at en konvertering er gjort. Hvis en Big Endian-datamaskin sendte det ovennevnte binære nummeret til en Little Endian-datamaskin uten konvertering, ville det bli tolket som 513. For å unngå problemer i et heterogent nettverk konverteres binære tall til Network Standard Format (Big Endian) før overføring. Funksjonene: htons Verten til nettverk Kort htonl Verter til Network Long kan brukes til å konvertere binære data til standard standardformat. Historisk notat: Navnene Big Endian og Little Endian kommer fra Swifts roman Gullivers Travels. I denne historien ble lilliputianene delt inn i de store endianene og de små endianene basert på hvilken ende av et kokt egg de trodde skulle åpnes. Stort C-bibliotek En 16-biters binær verdi eller et lat Argument som evaluerer til en 16-biters binær verdi. Denne verdien er alltid i native endian. En 32-biters binær verdi eller et lat Argument som evaluerer til en 32-biters binær verdi. Denne verdien er alltid i native endian. En binær verdi på 64 bit eller et lat argument som vurderer til en binær verdi på 64 bit. Denne verdien er alltid i native endian. En flytende binær verdi eller et lat Argument som evaluerer til en flytende binær verdi. Denne verdien er alltid i native endian. En dobbel binær verdi eller et lat Argument som evaluerer til en dobbel binær verdi. Denne verdien er alltid i native endian. Semantikk av et uttrykk er bare definert der det adskiller seg fra, eller er ikke definert i PrimitiveParser.

Comments

Popular Posts