Não se pode fazer cast de um tipo de dados cujo tamanho é maior que o do
dado que irá receber o resultado da conversão. O tipo Byte, como o próprio
nome do tipo diz, tem um byte de tamanho. Já o tipo Real (que no final das
contas é um Double) tem 8 bytes de tamanho. O que se pode fazer é
representar um dado Real (ou Double) como um array de 8 bytes, assim:
program RealToBytes;
{$APPTYPE CONSOLE}
uses SysUtils;
var
cod: Real;
c: array[0..SizeOf(Real) - 1] of byte absolute cod;
i: integer;
begin
cod := 123.45;
for i := 0 to SizeOf(Real) - 1 do
WriteLn(Format('$%2.2X', [c[i]]));
WriteLn(Eoln);
end.
Sds.
De: [email protected] [mailto:[email protected]] Em
nome de felipe govoni
Enviada em: quinta-feira, 2 de setembro de 2010 08:38
Para: [email protected]
Assunto: [delphi-br] cast de float para byte
bom dia
estou tentando fazer isso:
var cod :real;
c :byte;
begin
cod := 1;
c := byte(cod);
end;
mas da erro de cast, alguem sabe como fazer essa transformação?
--
Felipe Govoni
---------------------
GOVONI Sistemas
Fone 8472-8718
www.govoni.com.br
[As partes desta mensagem que não continham texto foram removidas]
[As partes desta mensagem que não continham texto foram removidas]