Code: Select all
val >> 4
Code: Select all
INT(val / 16) 'Thanks to Moneo
Code: Select all
val >> 1
val >> 2
val >> 3
val << 1
val << 2
val << 3
val << 4
thx
Grtz
Code: Select all
val >> 4
Code: Select all
INT(val / 16) 'Thanks to Moneo
Code: Select all
val >> 1
val >> 2
val >> 3
val << 1
val << 2
val << 3
val << 4
Code: Select all
Example:
x = x << 3
x = x *2*2*2=x*2^3=x*8
temp&= x%
temp&=(temp&*8) and &hffff
x%=temp&
Code: Select all
DECLARE FUNCTION BitShift(value1, cmd$, value2)
x = 87
x = BitShift(x,">>", 3)
FUNCTION BitShift (value1, cmd$, value2)
IF cmd$ = "<<" THEN
'"value1" has to be shifted "value2" bit(s) to the left.
'formula: x = x * 2 ^ y
x = value1 * 2 ^ value2
temp& = x%
temp& = (temp& * x ^ value2) AND &HFFFF
BitShift = temp&
ELSEIF cmd$ = ">>" THEN
'"value1" has to be shifted "value2" bit(s) to the right.
'formula: x = x / 2 ^ y
BitShift = INT(x * 2 ^ value2)
END IF
END FUNCTION
Code: Select all
BitShift = INT(x * 2 ^ value2)
Code: Select all
BitShift = INT(x / 2 ^ value2)
Code: Select all
BitShift = INT(x * (2 ^ value2))
Code: Select all
DECLARE FUNCTION BitShift(value1, cmd$, value2)
COMMON SHARED BSHIFTVALUES() AS INTEGER
DIM SHARED BSHIFTVALUES(0 TO 15 AS INTEGER)
FOR A = 0 TO 14 '15 is kinda 2much
BSHIFTVALUES(A) = 2 ^A
NEXT
x = 87
x = BitShift(x,">>", 3)
FUNCTION BitShift (value1, cmd$, value2)
value2 = value2 AND &HF
IF cmd$ = "<<" THEN
'"value1" has to be shifted "value2" bit(s) to the left.
'formula: x = x * 2 ^ y
temp1 = value1 * BSHIFTValues(value2)
temp2& = temp1
temp2& = (temp2& * BSHIFTValues(value2) AND &HFFFF
BitShift = temp&
ELSEIF cmd$ = ">>" THEN
'"value1" has to be shifted "value2" bit(s) to the right.
'formula: x = x / 2 ^ y
BitShift = value1 / BSHIFTValues(value2)
END IF
END FUNCTION
Code: Select all
IF value2 = 0 THEN BitShift = 0: EXIT FUNCTION