PDA

Просмотр полной версии : [Include] TDW Bit Libraries



VVWVV
16.10.2016, 03:00
TDW Bit Libraries
github (https://github.com/TDW-org/samp-include-bit)

Описание:

Библиотеки для работы с битами.

Библиотеки:


Название
Описание


tdw_bit
Функции для взаимодействия с битами.


Функции:

BitMask
BitSet
BitClear
BitFlip
BitTest
BitChunk


Примечания по использованию функций:


Для того чтобы присвоить число, вам необходимо поставить запятую при перечислении аргументов.

new a;
BitSet(a, 3);
Если вы хотите просто провести какую-то операцию без присваивания, то необходимо поставить точку с запятой при перечислении аргументов.

new a;
BitSet(a; 3);
Кроме того, появился новый тип, который создаёт битовую маску. Данный тип будет работать только в выше перечисленных функциях.

new a;
BitSet(a; m:3);





tdw_bitset
Битовые массивы.


Функции:

GetBitIndex
GetBitOffset
BitSet_Set
BitSet_Get



Примечание: реализация основных функций была позаимствована из библиотеки rBits. Однако, основная идея данной библиотеки является то, что теперь при вызове основных функции не нужно будет указывать размер (тип).

P.S. В дальнейшем библиотека будет пополнятся.



Пример инициализации массива:


new Bit:name<8@4>


name - имя массива.
8 - количество ячеек.
4 - тип (1/2/4/8/16).

Если же вы укажите неправильный тип, то будет ошибка:


undefined symbol "BIT_SIZE_PART_<указанный вами тип>"





Скачать:

github (https://github.com/TDW-org/samp-include-bit)

Установка:

Скачать библиотеку (https://github.com/TDW-org/samp-include-bit).
Все файлы, точнее библиотеки, переместить в папку 'pawno/includes'. Впрочем, можно воспользоваться флагом '-i<путь>' для указания альтернативного пути для библиотек.
Библиотеки необходимо подключать после файла 'a_samp'.
Пример:


#include <a_samp>
#include <tdw_bit>
Скомпилировать изменённые вами скрипты.


Благодарности:

-


Распространяется по лицензии ZLIB.

VVWVV
10.12.2016, 03:01
Версия: 2.1.5

Изменения:
1. Изменён шаблон для инициализации.


new Bit:array<8>[1]; // Размер массива - 1 ячейка, размер ячейки - 8.

2. Добавлены новые функции: BitSet_Count, BitSet_Any, BitSet_None, BitSet_Print, BitSet_Flip