Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-01-2010
dtomeysoto dtomeysoto is offline
Miembro
 
Registrado: dic 2005
Posts: 173
Poder: 19
dtomeysoto Va por buen camino
Dividir Word en 2 Byte

Amigos del club, necesito coger de una variable de tipo word los 8 primeros bits y guardarlos en una variable de tipo Byte y hacer lo mismo pero en otra variable con los restantes 8 bits.

Podria alguien darme una ayudita, Graciassss

Última edición por dtomeysoto fecha: 15-01-2010 a las 15:23:42.
Responder Con Cita
  #2  
Antiguo 15-01-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola.

Existen un par de funciones para ese propósito, llamadas Lo (byte bajo) y Hi (byte alto).

Código Delphi [-]
B := Lo (W);

Saludos.

Al González.
Responder Con Cita
  #3  
Antiguo 15-01-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Sin dudas lo que te propone Al Gonzalez, es la solución mas habitual. Sucede que muchas veces dentro de una función hay muchas referencias a cada byte de un valor y no desees estar llamando a funciones como Hi/LoByte y MakeWord para armar el resultado, o te encuentres con algún tipo de datos mas difícil de descomponer. En este caso hay otras opciones muy prácticas que ofrece el lenguaje:

Podes crear dos variables que residan en el mismo espacio de memoria mediante la directiva absolute:
Código Delphi [-]
var
  W: Word;
  B: array[0..1] of byte absolute W;
begin
  B[0] := 255;
  B[1] := 0;

  WriteLn(W);

Otra opción, es usar registros con partes variables:
Código Delphi [-]
type
  TMyWord = record
    case Integer of
      1: (Value: Word);
      2: (LoByte: Byte;
          HiByte: Byte
  end;

var
  W: TMyWord;
begin
  W.LoByte := 255;
  W.HiByte := 0;
  WriteLn(W.Value);

Espero no confundir!..
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
File of byte y filesize madmai Varios 1 11-07-2008 18:49:43
Crear un Campo Byte sidneyb SQL 0 24-04-2008 21:43:04
Pasar string a byte Novás Varios 6 27-11-2007 20:18:38
de BYTE a STRING emeceuy Varios 3 20-08-2004 16:29:32
ADO: Byte nulo (byte #0) en un string Pandre Conexión con bases de datos 0 02-04-2004 20:18:37


La franja horaria es GMT +2. Ahora son las 22:16:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi