Нужно проеснить
[COLOR=blue]Установка бита
Для установки отдельного бита или группы битов используется операция ИЛИ, использование иллюстрируется ниже приведенным кодом в виде отдельной функции и результатом выполнения в виде таблицы.
function SetBit(Src: Integer; bit: Integer): Integer;
begin
Result := Src or (1 shl Bit);
end;
Здесь происходит следующее: Сначала мы рассчитываем позицию бита - (1 shl Bit), затем устанавливаем полученный бит и возвращаем результат через предопределенную переменную Result. Пример использования:
DummyValue := SetBit(DummyValue, 2);[/COLOR]
Цитата:
Originally posted by Syama
как нибуть другими словами можно обяснить эти стоки?
[COLOR=blue]Установка бита
Для установки отдельного бита или группы битов используется операция ИЛИ, использование иллюстрируется ниже приведенным кодом в виде отдельной функции и результатом выполнения в виде таблицы.
function SetBit(Src: Integer; bit: Integer): Integer;
begin
Result := Src or (1 shl Bit);
end;
Здесь происходит следующее: Сначала мы рассчитываем позицию бита - (1 shl Bit), затем устанавливаем полученный бит и возвращаем результат через предопределенную переменную Result. Пример использования:
DummyValue := SetBit(DummyValue, 2);[/COLOR]
как нибуть другими словами можно обяснить эти стоки?
[COLOR=blue]Установка бита
Для установки отдельного бита или группы битов используется операция ИЛИ, использование иллюстрируется ниже приведенным кодом в виде отдельной функции и результатом выполнения в виде таблицы.
function SetBit(Src: Integer; bit: Integer): Integer;
begin
Result := Src or (1 shl Bit);
end;
Здесь происходит следующее: Сначала мы рассчитываем позицию бита - (1 shl Bit), затем устанавливаем полученный бит и возвращаем результат через предопределенную переменную Result. Пример использования:
DummyValue := SetBit(DummyValue, 2);[/COLOR]
Усьо просто shl сдвигает все биты влево(shr вправо) (1 shl Bit) здесь 1 это в двоичной арифметике (0000000000000001) сдвигаеться на Bit(количество бит) влево пустые места слева заполняются нулями. Если мы напишем (1 shl 4) то
это равно (0000000000010000) в двоичной.
Оператор or ставит еденицу если один из битов единица иначе ноль.