RES: [delphi-br] cast de float para byte

2010-09-02 Por tôpico Rubem Rocha
Beleza, mas seria melhor ainda que você mostrasse como você fez para que
outros colegas que, como você, poderão (ou irão) passar pelo mesmo problema
saibam com contorná-lo. Isso é até uma maneira de se mostrar grato à lista
no momento em que você precisou dela. Só o "venha a nós" e "ao vosso reino"
nada é chato, não é mesmo?

Sds.

-Mensagem original-
De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de felipe govoni
Enviada em: quinta-feira, 2 de setembro de 2010 12:30
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] cast de float para byte

na verdade o valor dentro da variavel era um valor entre 65 e 90, por isso
achei que daria pra converter pra byte.

eu ja resolvi o problema, eu que estava fazendo errado.

mas mesmo assim obrigado.




Em 2 de setembro de 2010 20:12, Rubem Rocha
escreveu:

>
>
> A título de esclarecimento, um valor do tipo byte corresponde a um valor
> inteiro compreendido entre a faixa de valores de 0 até 255. Um valor do
> tipo
> Real (que é um Double!) pode passar desse valor, e ainda poder receber
> valores negativos. A grosso modo, esta também poderia ser uma explicação
> ‘aceitável’ para não ser possível fazer cast(conversão de tipo) de Real
> para
> Byte.
>
>
> Sds.
>
> De: delphi-br@yahoogrupos.com.br  [mailto:
> delphi-br@yahoogrupos.com.br ] Em
> nome de Rubem Rocha
> Enviada em: quinta-feira, 2 de setembro de 2010 11:39
>
> Para: delphi-br@yahoogrupos.com.br 
> Assunto: RES: [delphi-br] cast de float para byte
> Prioridade: Alta
>
>
> 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: delphi-br@yahoogrupos.com.br   delphi-br%40yahoogrupos.com.br >
> [mailto:delphi-br@yahoogrupos.com.br
 delphi-br%40yahoogrupos.com.br >
>
> ] Em
> nome de felipe govoni
> Enviada em: quinta-feira, 2 de setembro de 2010 08:38
> Para: delphi-br@yahoogrupos.com.br
 delphi-br%40yahoogrupos.com.br >
> 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





RES: [delphi-br] cast de float para byte

2010-09-02 Por tôpico Rubem Rocha
A título de esclarecimento, um valor do tipo byte corresponde a um valor
inteiro compreendido entre a faixa de valores de 0 até 255. Um valor do tipo
Real (que é um Double!) pode passar desse valor, e ainda poder receber
valores negativos. A grosso modo, esta também poderia ser uma explicação
‘aceitável’ para não ser possível fazer cast(conversão de tipo) de Real para
Byte.

 

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Rubem Rocha
Enviada em: quinta-feira, 2 de setembro de 2010 11:39
Para: delphi-br@yahoogrupos.com.br
Assunto: RES: [delphi-br] cast de float para byte
Prioridade: Alta

 

  

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: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
[mailto:delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
] Em
nome de felipe govoni
Enviada em: quinta-feira, 2 de setembro de 2010 08:38
Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
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]



RES: [delphi-br] cast de float para byte

2010-09-02 Por tôpico Rubem Rocha
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: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de felipe govoni
Enviada em: quinta-feira, 2 de setembro de 2010 08:38
Para: delphi-br@yahoogrupos.com.br
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]