Установка бита в единицу

 

Code:

function BitOn(const val: longint; const TheBit: byte): LongInt;

{©Drkb v.3(2007): www.drkb.ru}

begin

Result := val or (1shl TheBit);

end;

 

 

Code:

procedure SetBit(SetWord, BitNum: Word);

begin

SetWord := SetWord or BitNum; { Устанавливаем бит }

end;

 

https://delphiworld.narod

DelphiWorld 6.0

 


 

Code:

{ **** UBPFD *********** by delphibase.endimus.com ****

>> Установка определенного бита в слове

 

Возвращает AWord с установленным битом номер ABit (c 0 по 15) в значение 1,

если AState = TRUE или 0, если AState = FALSE.

 

Стоит заметить, что в функцию передается именно номер бита, а не маска.

Проверка на правильный номер не производится.

 

Зависимости: System

Автор: Григорий Ситнин, gregor gregor.ru, Москва

Copyright: Григорий Ситнин, 2003

Дата: 8 июля 2013 г.

***************************************************** }

 

function SetBit(AWord: word; ABit: byte; AState: boolean = true): word;

begin

if AState then

Result := AWord or (1shl ABit)

else

Result := AWord and (not (1shl ABit));

end;

Пример использования:

 

{$APPTYPE CONSOLE}

program test;

uses Bits; // В модуле Bits описана функция SetBit

var

z: word;

i: integer;

s: string;

begin

z := 0;

z := setbit(z, 0); // 0000000000000001

z := setbit(z, 2); // 0000000000000101

z := setbit(z, 9); // 0000001000000101

z := setbit(z, 14); // 0100001000000101

z := setbit(z, 15); // 1100001000000101

s := '';

for i := 15downto0do

s := s + inttostr(Ord(CheckBit(z, i)));

writeln('value: ', z, ' dec = 1100001000000101');

writeln('result: ', s);

z := $FFFF;

z := setbit(z, 0, false); // 1111111111111110

z := setbit(z, 2, false); // 1111111111111010

z := setbit(z, 9, false); // 1111110111111010

z := setbit(z, 14, false); // 1011110111111010

z := setbit(z, 15, false); // 0011110111111010

s := '';

for i := 15downto0do

s := s + inttostr(Ord(CheckBit(z, i)));

writeln('value: ', z, ' dec = 0011110111111010');

writeln('result: ', s);

end.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить