[SP-pm] De delphi para Perl, was Boas vindas ao Erick Major dos Santos

Blabos de Blebe blabos at gmail.com
Wed Jul 8 16:39:38 PDT 2009


Minha mãezinha do céu!!!!!!!!!!!!!!!

Ok, vamo lá,

Eu conheço pouco de delphi então vou suspeitar, supor, ok? Se eu
estiver errado, descarte, ok?

Isso tem cara de operações lógicas bit a bit. Se for, então:

O array BITS, guarda em cada posição um número especial que em binário
só tem um bit "ligado". Parece ser uma máscara. O 6 deve ser o valor
que está sendo avaliado contra a máscara.

Em binário,

0000 0001 = 1
0000 0010 = 2
0000 0100 = 4
0000 1000 = 8
0001 0000 = 16
0010 0000 = 32
0100 0000 = 64
1000 0000 = 128

0000 0110 = 6

A operação que você está fazendo parece ser em binário, 2 and 6 (já
que BITS[1] = 2), daí

0000 0010 = 2 (and)
0000 0110 = 6
---------------------------
0000 0010 = 2

2 (na base 10) em contexto booleano, na maioria das linguagens é
verdadeiro porque possui pelo menos um bit ligado, o segundo menos
significativo, no caso.

Provavelmente o seu código está perguntando:

Se o segundo bit menos significativo de 6 estiver ligado, então mostre
a mensagem "true" senão, mostre a mensagem "false".

Bom, se for isso, eu só falei o seu problema com mais palavras que o
delphi. Nunca trabalhei com isso em Perl. Deve ter algum módulo no
cpan que facilite as coisas.

Solli, você tem alguma dica???

Abraços



2009/7/8  <claudio em dpreferencial.com.br>:
> Pessoall, Boa tarde!
>
> Como sempre, estou precisando de um HELP!!!
>
> Estou passando um sistema de Delphi para Perl
> e não tenho consiguido achar indicação
> para desenvolver este trecho do código.
>
> É uma comparação feita como entre Bytes como Boolean.
> ________________________________________________________________
> ________________________________________________________________
> Segue o trecho do código:
>
> Procedure Ver_Conteudo;
>    const BITS: array[0..7] of Byte = (1,2,4,8,16,32,64,128);
>    Res:   Boolean;
> Begin
>
>   Res := Boolean ( BITS[1] and 6 );    // Este é o trecho que me interessa,
>  este resultado dá true.
>
>   if (Res) Then ShowMessage('True') else ShowMessage('False');
>
> End;
>
> ________________________________________________________________
> ________________________________________________________________
>
> Qualquer ajuda/ luz, ajuda muito...
>
> desde já agradeço a todos.
>
> Abs
>
> Claudio H.Binaghi
> claudio em dpreferencial.com.br
> 5511 3288.4840
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


More information about the SaoPaulo-pm mailing list