Rotations de bits
Publié : ven. 26/août/2005 13:34
je sais pas faire plus simple
Dri

Code : Tout sélectionner
Procedure ROL(Value.l, Offset.l)
Offset % 32
If Offset < 0
Offset + 32
EndIf
While Offset > 0
ROL Value, 1
Offset - 1
Wend
ProcedureReturn Value
EndProcedure
Procedure ROR(Value.l, Offset.l)
Offset % 32
If Offset < 0
Offset + 32
EndIf
While Offset > 0
ROR Value, 1
Offset - 1
Wend
ProcedureReturn Value
EndProcedure
a = $0FF00000
Debug "$"+RSet(Hex(a), 8, "0")
Debug "$"+RSet(Hex(ROR(a, 8)), 8, "0")
Debug "$"+RSet(Hex(ROL(a, 8)), 8, "0")
Debug "---"
Debug "$"+RSet(Hex(ROR(a, 32)), 8, "0")