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 16-06-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
¿Cuántos bytes tiene un real?

Tras ver la asignatura de Estructura y Tecnología de Computadores (como ya sabeis en ella se ve a fondo el funcionamiento de un computador, nosotros más en concreto vimos el Motorola 68000) he comprendido del todo la razón de los tipos de datos Byte y Word de Pascal / Object Pascal, por ello me ha picado el gusanillo y he empezado a hacer esto:

Byte [0,255]
=> Como su nombre indica está formado por un byte (por tanto tenemos 8 bits para el número por lo que el número más alto será (2^8)-1 = 255).

Word [0,65535] => Como su nombre tiene una longitud de una palabra, es decir, dos bytes (por tanto tenemos 16 bits para el número por lo que el número más alto será (2^16)-1 = 65535).

Char [0,255] => Por lo que deduzco es un byte ya que un caracter ASCII ocupa un byte.
Ejemplo: la letra A es el número 41 en hexadecimal, como 41 tiene dos cifras ocupa un byte.

ShortInt [-128,127]
=> Por lo que deduzco es un byte (como hay signo un bit se usa para tal efecto con lo que tenemos 7 bits para el número por tanto el número más alto será (2^7)-1 = 127).

Integer [-32768,32767] => Por lo que deduzco que está formado por dos bytes (como hay signo un bit se usa para tal efecto con lo que tenemos 15 bits para el número por tanto el número más alto será (2^15)-1 = 32767).

LongInt [-2147483646,2147483647] => Por lo que deduzco que está formado por cuatro bytes (como hay signo un bit se usa para tal efecto con lo que tenemos 31 bits para el número por tanto el número más alto será (2^31)-1 = 2147483647).

¿Y el tipo de dato real? Este (y los demás que son en punto flotante) me descoloca, no se cuantos bytes tiene ni como expresar el número más alto de la forma 2^numero_bits - 1, lo único que se es que tiene este rango 1E-38 a 1E+38. No he trabajado con números decimales en ensamblador.

Saludos.

Última edición por kakarotv5 fecha: 16-06-2007 a las 00:52:22.
Responder Con Cita
  #2  
Antiguo 16-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
No te calientes la cabeza, la función Sizeof te devuelve el tamaño en bytes de cualquier variable, o tipo. Por ejemplo:
Código Delphi [-]
  ShowMessage(IntToStr(Sizeof(Real)));

Y sino también puedes mirar la ayuda:
Código:
Type		Range					digits		Size in bytes
Real48		2.9 x 10^-39 .. 1.7 x 10^38		11-12		6
Single		1.5 x 10^-45 .. 3.4 x 10^38		7-8		4
Double		5.0 x 10^-324 .. 1.7 x 10^308		15-16		8
Extended	3.6 x 10^-4951 .. 1.1 x 10^4932		19-20		10
Es mejor que te acostumbres a usar Sizeof, porque a veces pasan cosas curiosas como esta:
Código Delphi [-]
var
  Ejemplo: record
    i: Integer;
    b: byte;
  end;
begin
  ShowMessage(IntToStr(Sizeof(Ejemplo)));
end;
Según la tabla anterior el tamaño del record debería de ser de 5 bytes, pero sin embargo como veras en el mensaje es de 8. Esto es debido a la "optimización" que realiza el compilador. Y sin embargo:
Código Delphi [-]
var
  Ejemplo: packed record
    i: Integer;
    b: byte;
  end;
begin
  ShowMessage(IntToStr(Sizeof(Ejemplo)));
end;
Ahora el record si que mide 5 bytes, curioso ¿verdad?
Responder Con Cita
  #3  
Antiguo 16-06-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Muchas gracias.
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
cuantos domingos tiene un periodo poliburro Varios 16 22-06-2007 16:59:02
Saber cuantos registros tiene un GridView JuanErasmo .NET 1 02-01-2007 21:19:32
Cuantos Dias Tiene Un Mes ? Pascual Montes Varios 6 09-12-2004 00:02:53
4 bytes a un entero ssaavedra Varios 1 09-01-2004 20:12:11
Cuantos Bytes estoy enviando por FTP? pinoxo Internet 4 27-06-2003 03:05:00


La franja horaria es GMT +2. Ahora son las 12:24:04.


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