Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Force 4.0 Reference - shiftright() shift right the bits in a uint by the given number http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 shiftright()        Shift right the bits in a uint by the given number
------------------------------------------------------------------------------
 Declaration
   bit.hdr

 Syntax
   func uint shiftright extern
   param value uint uNumber, ;
         value uint uBits

 Arguments
   uNumber is a numeric expression.
   uBits is the number of bits to shift.

 Return
   The result of the shift operation.

 Description
   shiftright() shifts the 16 bits in uNumber to the right by the number
   specified by uBits. Leftmost bits are set to 0; bits "shifted out" are
   lost.

   When uNumber contains 8, it's binary representation is

   0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

   shiftright( uNumber, 2 ) returns a result having the following binary
   representation:

   0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0

   If uNumber has the following binary representation:

   1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1

   shiftleft( uNumber, 1 ) returns the following binary result:

   0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1

   The trailing "1" is lost.

 Example
   #define EXAMPLE_MATH
   #include example.hdr

   proc Test_shiftright
   vardef
      uint nNum
      uint n
   enddef
   // Divide a uint by 4
   nNum := 0000000000001000B
   ? nNum                          // outputs 8
   ? shiftright( nNum, 2 )         // outputs 2
   ?
   nNum := 1000000000000000B
   for n := 0 to 16
      ? n, shiftright( nNum, n )
   next
   endproc

   proc main
   Test_shiftright()
   endproc

See Also: longshiftright() shiftleft()

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson