Giro de los enteros y las palabras
Este artículo fue publicado originalmente a delphi3000.com
a Veces es nessescary para convertir los bytes de un entero. Esto se conoce como el big-endian/little-endian problema, y se produce cuando se reciben datos desde una máquina con otra de orden de bytes:
Algunas máquinas organiza bytes de izquierda a derecha.
Otras organiza de derecha a izquierda.
Delphi ha implementado una función llamada swap() que se puede convertir enteros. Pero aquí hay algunos ejemplos de cómo hacerlo usted mismo.
// Torneado de un smallint (16 bits con signo)
función i16( i : smallint ) : smallint
var
& nbsp & nbsp x1 : smallint
& nbsp & nbsp x2 : array[0..1] of byte absoluta x1
& nbsp & nbsp x3 : array[0..1] of byte absoluta i
begin
& nbsp & nbsp x2[0] := x3[1]
& nbsp & nbsp x2[1] := x3[0]
& nbsp & nbsp resultado := x1
fin
// Torneado de una palabra (16 bits sin signo)
función r16( i : word) : word
var
& nbsp & nbsp x1 : word
& nbsp & nbsp x2 : array[0..1] de byte absoluta x1
& nbsp & nbsp x3 : array[0..1] of byte absoluta i
begin
& nbsp & nbsp x2[0] := x3[1]
& nbsp & nbsp x2[1] := x3[0]
& nbsp & nbsp resultado := x1
fin
// convertir una longint (con signo de 32 bits)
función r32( i : longint) : longint
var
& nbsp & nbsp & nbsp x1 : longint
& nbsp & nbsp & nbsp x2 : array[1..4] of byte absoluta x1
& nbsp & nbsp & nbsp x3 : array[1..4] of byte absoluta i
begin
& nbsp & nbsp & nbsp x2[1] := x3[4]
& nbsp & nbsp & nbsp x2[2] := x3[3]
& nbsp & nbsp & nbsp x2[3] := x3[2]
& nbsp & nbsp & nbsp x2[4] := x3[1]
& nbsp & nbsp & nbsp resultado := x1
fin
¿ves el patrón?
Giro de los enteros y las palabras
Giro de los enteros y las palabras : Multi-millones de consejos para hacer su vida mas facil.
Este articulo fue publicado originalmente a delphi3000.com
a Veces es nessescary para convertir los bytes de un entero. Esto se conoce como el big-endian/little-endian problema, y se produce cuando se reciben datos desde una maquina con otra de orden de bytes:
Algunas maquinas organiza bytes de izquierda a derecha.
Otras organiza de derecha a izquierda.
Delphi ha implementado una funcion llamada swap() que se puede convertir enteros. Pero aqui hay algunos ejemplos de como hacerlo usted mismo.
// Torneado de un smallint (16 bits con signo)
funcion i16( i : smallint ) : smallint
var
& nbsp & nbsp x1 : smallint
& nbsp & nbsp x2 : array[0..1] of byte absoluta x1
& nbsp & nbsp x3 : array[0..1] of byte absoluta i
begin
& nbsp & nbsp x2[0] := x3[1]
& nbsp & nbsp x2[1] := x3[0]
& nbsp & nbsp resultado := x1
fin
// Torneado de una palabra (16 bits sin signo)
funcion r16( i : word) : word
var
& nbsp & nbsp x1 : word
& nbsp & nbsp x2 : array[0..1] de byte absoluta x1
& nbsp & nbsp x3 : array[0..1] of byte absoluta i
begin
& nbsp & nbsp x2[0] := x3[1]
& nbsp & nbsp x2[1] := x3[0]
& nbsp & nbsp resultado := x1
fin
// convertir una longint (con signo de 32 bits)
funcion r32( i : longint) : longint
var
& nbsp & nbsp & nbsp x1 : longint
& nbsp & nbsp & nbsp x2 : array[1..4] of byte absoluta x1
& nbsp & nbsp & nbsp x3 : array[1..4] of byte absoluta i
begin
& nbsp & nbsp & nbsp x2[1] := x3[4]
& nbsp & nbsp & nbsp x2[2] := x3[3]
& nbsp & nbsp & nbsp x2[3] := x3[2]
& nbsp & nbsp & nbsp x2[4] := x3[1]
& nbsp & nbsp & nbsp resultado := x1
fin
¿ves el patron?
Giro de los enteros y las palabras
By Consejos Y Trucos
Giro de los enteros y las palabras : Multi-millones de consejos para hacer su vida más fácil.