Побитовые операции с данными

<< Click to Display Table of Contents >>

Navigation:  Modbus Universal MasterOPC Server > Руководство по языку Lua 5.1 > Библиотеки функций > Библиотека BIT >

Побитовые операции с данными

Побитовые операции с данными

mbul_mail bit.BitToData

mbul_mail bit.BitFromData

mbul_mail bit.BitNot

mbul_mail bit.BitAnd

mbul_mail bit.BitOr

mbul_mail bit.BitXor

mbul_mail bit.BitLshift

mbul_mail bit.BitRshift

mbul_mail bit.BitArshift

bit.BitToData

Устанавливает значение указанного бита числа и возвращает модифицированное число.

Аргументы функции:

mbul   1 – число;

mbul   2 – значение бита (true или false);

mbul   3 – номер бита (начиная с 0).

Пример

local d=1

d=bit.BitToData(d,true,1); --d=3

server.Message("d=",d);

bit.BitFromData

Возвращает значение указанного бита числа.

Аргументы функции:

mbul   1 – число;

mbul   2 – номер бита (начиная с 0).

Пример

local bit=false;

local d=1

bit=bit.BitFromData(d,0); --bit=true

server.Message("bit=",bit);

bit.BitNot

Выполняет операцию "побитовое НЕ (NOT)", возвращает побитно инвертированное значение передаваемого аргумента.

Пример

--a = 01101101

b=bit.BitNot(a);

--b=10010010

bit.BitAnd

Возвращает результат операции "побитовое И (AND)" над передаваемыми аргументами. Число аргументов может быть больше двух.

Пример

--a = 01101101

--b = 11001001

c=bit.BitAnd(a,b);

--c = 01001001

bit.BitOr

Возвращает результат операции "побитовое ИЛИ (OR)" над передаваемыми аргументами. Число аргументов может быть больше двух.

Пример

--a = 00101101

--b = 10001001

c=bit.BitOr(a,b);

--c = 10101101

bit.BitXor

Возвращает результат операции "побитовое исключающее ИЛИ (XOR)" над передаваемыми аргументами. Число аргументов может быть больше двух.

Пример

--a = 00101101

--b = 10001001

c=bit.BitXor(a,b);

--c = 10100100

bit.BitLshift

Возвращает результат операции "побитовый логический сдвиг влево на заданную величину" (без переноса бит) над передаваемым аргументом.

Аргументы:

mbul   1 – сдвигаемое число;

mbul   2 – величина сдвига.

Пример

--a = 00101101

b=bit.BitLshift (a,3);

--b = 01101000

bit.BitRshift

Возвращает результат операции "побитовый логический сдвиг вправо на заданную величину" (без переноса бит) над передаваемым аргументом.

Аргументы:

mbul   1 – сдвигаемое число;

mbul   2 – величина сдвига.

Пример

--a = 00101101

b=bit.BitRshift(a,3);

--b = 00000101

bit.BitArshift

Возвращает результат операции "побитовый арифметический сдвиг вправо на заданную величину" над передаваемым аргументом.

Аргументы:

mbul   1 – сдвигаемое число;

mbul   2 – величина сдвига.

Пример

--a = 11111010

b=bit.BitArshift(a,1);

--b = 11111101