[Gambas-user] Rol/Ror vs. Shl/Shr

Rob sourceforge-raindog2 at ...94...
Thu Jun 12 04:08:04 CEST 2003


I was trying to come up with some examples for Rol/Ror tonight (bit rotate 
left/bit rotate right) and an explanation for the differences from Shl/Shr, 
so I made a simple console only project and put this in sub main:

  DIM oldvar AS Byte
  DIM newvar AS Byte

  oldvar = 129
  newvar = Shl(oldvar,1)
  PRINT newvar

  newvar = Rol(oldvar,1)
  PRINT newvar

and built and ran it, and got this:

2
2

meaning Shl and Rol both treat carried bits the same (discard them).  Are they 
meant to just be aliases of each other or is this a gambas bug?

For what it's worth, changing them to Shr and Ror returned
64
64
which is consistent, but when I made newvar an Integer, it returned
64
-2147483584
which is more what I'd expect (the latter being the output of Ror.)  I noticed 
there were no examples for Rol/Ror in the encyclopaedia and figured maybe it 
was something Benoit meant to fix a long time ago and got distracted by more 
interesting things ;)

Rob






More information about the User mailing list