Funciones para manipular bits

//lee si un bit determinado es igual a 1



function Get_a_Bit(const aValue: Cardinal; const Bit: Byte): Boolean;

begin

Result := (aValue and (1 shl Bit)) <> 0;

end;



//pone un bit determinado a 1



function Set_a_Bit(const aValue: Cardinal; const Bit: Byte): Cardinal;

begin

Result := aValue or (1 shl Bit);

end;



//pone un determinado bit a 0



function Clear_a_Bit(const aValue: Cardinal; const Bit: Byte): Cardinal;

begin

Result := aValue and not (1 shl Bit);

end;



//Activa o desactiva un bit



function Enable_a_Bit(const aValue: Cardinal; const Bit: Byte; const Flag: Boolean): Cardinal;

begin

Result := (aValue or (1 shl Bit)) xor (Integer(not Flag) shl Bit);

end;

No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...