[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

RE: Fileid



Alexandre Freire da Silva writes:
 > Mas eu quero ffff e não ssss certo???? Agora estou confuso! E como são as

Sim, você quer ffff e não ssss. Eu é que me enganei. Devia ser:

                   shift                      cast p/
                   right                      short
                   de 32                      (16 bits)
 ssssffffpppppppp -------> 00000000ssssffff  -----------> ffff
                                                          ^^^^
                                                          Assim está certo!

 > regras do cast, como funciona ou onde posso achar uma explicação, alguem
 > pode me ajudar???

O cast para short simplesmente pega os 16 bits menos significativos
(ffff no caso acima) e descarta os demais.

Reverbel

 > 
 >  Alexandre Freire      <alex@linux.ime.usp.br>
 > 
 > On Mon, 26 Apr 1999, Francisco Reverbel wrote:
 > 
 > > Alexandre Freire da Silva writes:
 > >  > Mas professor, se o pageId conter tambem o record id (mais para frente no
 > >  > projeto) este metodo funciona?????
 > > 
 > > Funciona!
 > >                   shift                      cast p/
 > >                   right                      short
 > >                   de 32                      (16 bits)
 > > ssssffffpppppppp -------> 00000000ssssffff  -----------> ssss
 > > 
 > > Reverbel
 > > 
 > >  > 
 > >  >  Alexandre Freire      <alex@linux.ime.usp.br>
 > >  > 
 > >  > On Sun, 25 Apr 1999, Francisco Reverbel wrote:
 > >  > 
 > >  > > Alexandre Freire da Silva writes:
 > >  > >  > Não vou usar os métodos relacionados ao recid nesta fase do projeto
 > >  > >  > certo???
 > >  > >  > mas eu preciso de um método que me retorne o fileId a partir do pageId
 > >  > >  > como eu faço isso?
 > >  > > 
 > >  > > Uma maneira elegante é por na classe DBFile um método assim:
 > >  > > 
 > >  > >     static short idFromPID(long pid) { return (short)(pid >> 32); }
 > >  > > 
 > >  > > Quando precisar obter um fileId a partir de um pageId, diga:
 > >  > > 
 > >  > >     fileId = DBFile.idFromPID(pageId);
 > >  > > 
 > >  > > Reverbel
 > >  > > 
 > >  > 
 > > 
 >