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