Drehen, ganze Zahlen und Wörter
Dieser Artikel wurde ursprünglich auf delphi3000.com gepostet.
Manchmal ist es Nessescary, die Bytes einer Ganzzahl zu machen. Dies ist bekannt als big-Endian/little-Endian-Problem und tritt auf, wenn Sie Daten von einem Computer mit einem anderen Bytereihenfolge erhalten:
Einige Maschinen ordnet Bytes von links nach rechts.
Anderen arrangiert sie von rechts nach links.
Delphi hat eine Funktion namens swap(), die Ganzzahlen können umgesetzt. Aber hier sind einige Beispiele wie es selbst zu tun.
Drehen einen Smallint (16 Bit unterzeichnet)
i16-Funktion (ich: Smallint): Smallint;
var
X 1: Smallint;
X 2: [0.. 1] Array von Byte absolute X 1;
X 3: absolute Byte-Array [0.. 1];
beginnen
X 2 [0]: = X 3 [1];
X 2 [1]: = X 3 [0];
Ergebnis: = X 1;
Ende;
Drehen ein Wort (16 Bit ohne Vorzeichen)
r16-Funktion (ich: Wort): Wort;
var
X 1: Wort;
X 2: [0.. 1] Array von Byte absolute X 1;
X 3: absolute Byte-Array [0.. 1];
beginnen
X 2 [0]: = X 3 [1];
X 2 [1]: = X 3 [0];
Ergebnis: = X 1;
Ende;
Drehen ein Longint (32bit unterzeichnet)
r32-Funktion (ich: Longint): Longint;
var
X 1: Longint;
X 2: absolute X 1; Byte-Array [1..4]
X 3: absolute Byte-Array [1..4];
beginnen
X 2 [1]: = X 3 [4];
X 2 [2]: = X 3 [3];
X 2 [3]: = X 3 [2];
X 2 [4]: = X 3 [1];
Ergebnis: = X 1;
Ende;
Siehst du das Muster?
Drehen, ganze Zahlen und Wörter
Drehen, ganze Zahlen und Wörter : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Dieser Artikel wurde ursprünglich auf delphi3000.com gepostet.
Manchmal ist es Nessescary, die Bytes einer Ganzzahl zu machen. Dies ist bekannt als big-Endian/little-Endian-Problem und tritt auf, wenn Sie Daten von einem Computer mit einem anderen Bytereihenfolge erhalten:
Einige Maschinen ordnet Bytes von links nach rechts.
Anderen arrangiert sie von rechts nach links.
Delphi hat eine Funktion namens swap(), die Ganzzahlen können umgesetzt. Aber hier sind einige Beispiele wie es selbst zu tun.
Drehen einen Smallint (16 Bit unterzeichnet)
i16-Funktion (ich: Smallint): Smallint;
var
X 1: Smallint;
X 2: [0.. 1] Array von Byte absolute X 1;
X 3: absolute Byte-Array [0.. 1];
beginnen
X 2 [0]: = X 3 [1];
X 2 [1]: = X 3 [0];
Ergebnis: = X 1;
Ende;
Drehen ein Wort (16 Bit ohne Vorzeichen)
r16-Funktion (ich: Wort): Wort;
var
X 1: Wort;
X 2: [0.. 1] Array von Byte absolute X 1;
X 3: absolute Byte-Array [0.. 1];
beginnen
X 2 [0]: = X 3 [1];
X 2 [1]: = X 3 [0];
Ergebnis: = X 1;
Ende;
Drehen ein Longint (32bit unterzeichnet)
r32-Funktion (ich: Longint): Longint;
var
X 1: Longint;
X 2: absolute X 1; Byte-Array [1..4]
X 3: absolute Byte-Array [1..4];
beginnen
X 2 [1]: = X 3 [4];
X 2 [2]: = X 3 [3];
X 2 [3]: = X 3 [2];
X 2 [4]: = X 3 [1];
Ergebnis: = X 1;
Ende;
Siehst du das Muster?
Drehen, ganze Zahlen und Wörter
By Wiezutun
Drehen, ganze Zahlen und Wörter : Mehreren tausend Tipps, um Ihr Leben einfacher machen.