Перейти к основному содержимому

ПобитовыеОперации

Стд::ПобитовыеОперации Тип-одиночка

Набор методов для выполнения побитовых операций над типами Число и Байты. Побитовые операции реализованы для типов Байты и целых чисел (тип Число). Экземпляр типа Число преобразуется в битовую последовательность в дополнительном коде. Если в методе допускается передавать отрицательное Число, то оно логически представляется в дополнительном коде бесконечной длины.

Индексация битов начинается с 0. Если в побитовой операции используется экземпляр типа Байты, то байт с индексом 0 содержит самые младшие биты в двоичном представлении. Внутри байта младшим считается самый правый бит двоичного представления.

Сравнение

Ссылочное

Иерархия типа​

Базовые типы: Объект, Одиночка


Методы​

АрифметическийСдвигВправо​

АрифметическийСдвигВправо<ТипИсточника>(
  Источник: ТипИсточника,
  Смещение: Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет арифметический сдвиг вправо на заданное количество битов. Для Источника типа Число допускаются как неотрицательные, так и отрицательные целые числа. Для Источника типа Байты освобождающиеся старшие биты получают значение старшего бита исходного байтового представления, а длина результата в байтах сохраняется. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если Смещение < 0.

Примеры​

метод ПримерАрифметическогоСдвигаВправо(): Число
возврат ПобитовыеОперации.АрифметическийСдвигВправо(-0b100, 1) // знак сохраняется
;

Результат:

-2

БитоваяДлина​

БитоваяДлина(Источник: Байты|Число): Число
Возвращает минимальное количество битов, необходимое для двоичного представления Источника без ведущих сброшенных битов. Для Числа метод принимает только целые неотрицательные значения.

Исключения​

ИсключениеНедопустимыйАргумент - если Источник имеет тип Число и является отрицательным.

Примеры​

метод ПримерБитовойДлины(): Число
возврат ПобитовыеОперации.БитоваяДлина(0b101011)
;

Результат:

6

И​

И<ТипИсточника>(
  Источник1: ТипИсточника,
  Источник2: МассивБитов|Байты|Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет побитовую операцию И. Второй аргумент преобразуется к представлению первого, поэтому при разных длинах более короткое представление дополняется сброшенными старшими битами. Для числовых аргументов допускаются только целые неотрицательные значения. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если в числовой аргумент передано отрицательное Число.

Примеры​

метод ПримерПобитовогоИ(): Число
возврат ПобитовыеОперации.И(0b11110000, 0b00111100)
;

Результат:

0b00110000

ИНе​

ИНе<ТипИсточника>(
  Источник1: ТипИсточника,
  Источник2: МассивБитов|Байты|Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет побитовую операцию И НЕ, то есть Источник1 & ~Источник2. Второй аргумент преобразуется к представлению первого. Для числовых аргументов допускаются только целые неотрицательные значения. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если в числовой аргумент передано отрицательное Число.

Примеры​

метод ПримерПобитовогоИНе(): Число
возврат ПобитовыеОперации.ИНе(0b11110000, 0b00111100)
;

Результат:

0b11000000

Или​

Или<ТипИсточника>(
  Источник1: ТипИсточника,
  Источник2: МассивБитов|Байты|Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет побитовую операцию ИЛИ. Второй аргумент преобразуется к представлению первого. Для числовых аргументов допускаются только целые неотрицательные значения. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если в числовой аргумент передано отрицательное Число.

Примеры​

метод ПримерПобитовогоИли(): Число
возврат ПобитовыеОперации.Или(0b11110000, 0b00111100)
;

Результат:

0b11111100

ИнвертироватьБит​

ИнвертироватьБит<ТипИсточника>(
  Источник: ТипИсточника,
  Индекс: Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Инвертирует значение бита по индексу. Для Источника типа Число допускаются как неотрицательные, так и отрицательные целые числа. Для Байтов при инверсии бита за пределами текущей длины результат расширяется до необходимого количества байтов. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если Источник имеет тип Число и не является целым. ИсключениеИндексВнеГраниц - если Индекс < 0.

Примеры​

метод ПримерИнвертироватьБит(): Число
возврат ПобитовыеОперации.ИнвертироватьБит(0b1010, 1) // второй бит справа меняется с 1 на 0
;

Результат:

0b1000

ИсключающееИли​

ИсключающееИли<ТипИсточника>(
  Источник1: ТипИсточника,
  Источник2: МассивБитов|Байты|Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет побитовую операцию XOR. Второй аргумент преобразуется к представлению первого. Для числовых аргументов допускаются только целые неотрицательные значения. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если в числовой аргумент передано отрицательное Число.

Примеры​

метод ПримерПобитовогоИсключительногоИли(): Число
возврат ПобитовыеОперации.ИсключающееИли(0b11110000, 0b00111100)
;

Результат:

0b11001100

ЛогическийСдвигВправо​

ЛогическийСдвигВправо(
  Источник: Байты,
  Смещение: Число
): Байты
Выполняет логический сдвиг вправо на заданное количество битов. Освободившиеся старшие биты становятся сброшенными. Метод поддерживается только для типа Байты. Длина результата в байтах сохраняется. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если Смещение < 0.

Примеры​

метод ПримерЛогическогоСдвигаВправо(): Число
знч Байты = МассивБитов.ИзЧисла(0b10110000, 8).ВБайты()
знч Результат = ПобитовыеОперации.ЛогическийСдвигВправо(Байты, 3) // освободившиеся старшие биты становятся 0
возврат МассивБитов.ИзБайтов(Результат, 8).ВЧисло()
;

Результат:

0b00010110

Не​

Не<ТипИсточника>(Источник: ТипИсточника): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет побитовую операцию НЕ. Для Источника типа Число допускаются как неотрицательные, так и отрицательные целые числа. Для Источника типа Байты инвертируются все биты, длина результата в байтах сохраняется. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если Источник имеет тип Число и не является целым.

Примеры​

метод ПримерПобитовогоНе(): Число
возврат ПобитовыеОперации.Не(0b1010) // для Числа результатом будет отрицательное значение
;

Результат:

-11

Получить​

Получить(
  Источник: Байты|Число,
  Индекс: Число
): Булево
Проверяет значение бита по индексу. Для Источника типа Число допускаются как неотрицательные, так и отрицательные целые числа. Для отрицательных чисел используется представление в дополнительном коде.

Исключения​

ИсключениеНедопустимыйАргумент - если Источник имеет тип Число и не является целым. ИсключениеИндексВнеГраниц - если Индекс < 0.

Примеры​

метод ПримерПолучитьБит(): Булево
возврат ПобитовыеОперации.Получить(0b1010, 1) // проверяется второй бит справа
;

Результат:

Истина

ПроверитьПоБитовойМаске​

ПроверитьПоБитовойМаске(
  Источник: Байты|Число,
  Маска: МассивБитов|Байты|Число
): Булево
Проверяет, что все биты, установленные в Маске, также установлены в Источнике. Если размеры Источника и Маски не совпадают, более короткое представление дополняется сброшенными старшими битами.

Исключения​

ИсключениеНедопустимыйАргумент - если в Источник или Маску передано отрицательное Число.

Примеры​

метод ПримерПроверитьПоБитовойМаске(): Булево
возврат ПобитовыеОперации.ПроверитьПоБитовойМаске(0b10110100, 0b00100100) // оба бита из маски установлены и в источнике
;

Результат:

Истина

СдвигВлево​

СдвигВлево<ТипИсточника>(
  Источник: ТипИсточника,
  Смещение: Число
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Выполняет сдвиг влево на заданное количество битов. Для Источника типа Число допускаются как неотрицательные, так и отрицательные целые числа. Для Источника типа Байты длина результата в байтах сохраняется, а освободившиеся младшие биты становятся сброшенными. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если Смещение < 0.

Примеры​

метод ПримерСдвигаВлево(): Число
возврат ПобитовыеОперации.СдвигВлево(0b101, 3)
;

Результат:

0b101000

Установить​

Установить<ТипИсточника>(
  Источник: ТипИсточника,
  Индекс: Число,
  Значение: Булево = Истина
): ТипИсточника
ТипИсточника: Тип экземпляра-источника. Допустимые типы: Число, Байты. Ограничения параметра типа: Стд::Байты, Стд::Число.

Устанавливает значение бита по индексу. Для Источника типа Число допускаются как неотрицательные, так и отрицательные целые числа. Для Байтов при установке бита за пределами текущей длины результат расширяется до необходимого количества байтов. Возвращает новый экземпляр типа ТипИсточника.

Исключения​

ИсключениеНедопустимыйАргумент - если Источник имеет тип Число и не является целым. ИсключениеИндексВнеГраниц - если Индекс < 0.

Примеры​

метод ПримерУстановитьБит(): Число
возврат ПобитовыеОперации.Установить(0b1010, 0) // параметр Значение не задан, поэтому используется Истина
;

Результат:

0b1011

Список унаследованных методов​

Объект​

ВСтроку

ПолучитьТип

Представление