Slå Heltall og words

Denne artikkelen ble opprinnelig postet til delphi3000.comSometimes det er nessescary å snu byte av et heltall. Dette er kjent som big-endian /little-endian problem, og oppstår når du mottar data fra en maskin med en annen byte rekkefølge: Noen maskiner arrangerer bytes fra venstre til right.Other arrangerer dem fra høyre til left.Delphi har implementert en funksjon kalt swap () som kan slå heltall. Men her er noen eksempler på hvordan du gjør det selv .//Slå en smallint (16 bit signert) -funksjonen I16 (i: smallint): smallint; Var x1: smallint; x2: array [0..1] i byte absolutt x1; x3: array [0..1] i byte absolutt i; begynne x2 [0]: = x3 [1]; x2 [1]: = x3 [0]; Resultat: = x1; end; //Slå et ord (16 bit unsigned) funksjons r16 (i: ord): Ord; Var x1: ord; x2: array [0..1] i byte absolutt x1; x3: array [0..1] i byte absolutt i; begynne x2 [0]: = x3 [1]; x2 [1]: = x3 [0]; Resultat: = x1; end; //Slå en longint (32 bit signert) funksjons r32 (i: longint): longint; Var x1: longint; x2: array [1..4] i byte absolutt x1; x3: array [1..4] i byte absolutt i; begynne x2 [1]: = x3 [4]; x2 [2]: = x3 [3]; x2 [3]: = x3 [2]; x2 [4]: ​​= x3 [1]; Resultatet: = x1; ende; Ser du mønsteret
?



Previous:
Next Page: