=Bit Shift Functions=
[[user:CarlGundel]]
[[toc]]

This is really easy to do:

==Shift Left==
[[code format="vbnet"]]
function shiftLeft(bitsValue)
    shiftLeft = bitsValue * 2
end function
[[code]]

==Shift Right==
[[code format="vbnet"]]
function shiftRight(bitsValue)
    shiftRight = int(bitsValue / 2)
end function
[[code]]

==Remove High Bit==
If you want to remove the high bit when shifting left, just write a function for that, like so:

[[code format="vbnet"]]
function shiftByteLeft(bitsValue)
    shiftByteLeft = 255 and (bitsValue * 2)
end function
[[code]]

==Ring Shifts==
Sometimes you want to rotate bits (ie:taking the bit that falls off one end and sticking it on the other.)
Here are routines to rotate the bits in an 8-bit number.
[[code format="vbnet"]]
function rotleft(x)
    rotleft = ((x+x) mod 256) or (x>127)
end function

function rotright(x)
    rotright = (128*(x and 1)) or int(x/2)
end function
[[code]]

Get the idea? :)

-Carl
[[user:CarlGundel]]