<< Click to Display Table of Contents >> Navigation: Modbus Universal MasterOPC Server > Руководство по языку Lua 5.1 > Библиотеки функций > Библиотека BIT > Побитовые операции с данными |
Устанавливает значение указанного бита числа и возвращает модифицированное число.
Аргументы функции:
1 – число;
2 – значение бита (true или false);
3 – номер бита (начиная с 0).
Пример
local d=1
d=bit.BitToData(d,true,1); --d=3
server.Message("d=",d);
Возвращает значение указанного бита числа.
Аргументы функции:
1 – число;
2 – номер бита (начиная с 0).
Пример
local bit=false;
local d=1
bit=bit.BitFromData(d,0); --bit=true
server.Message("bit=",bit);
Выполняет операцию "побитовое НЕ (NOT)", возвращает побитно инвертированное значение передаваемого аргумента.
Пример
--a = 01101101
b=bit.BitNot(a);
--b=10010010
Возвращает результат операции "побитовое И (AND)" над передаваемыми аргументами. Число аргументов может быть больше двух.
Пример
--a = 01101101
--b = 11001001
c=bit.BitAnd(a,b);
--c = 01001001
Возвращает результат операции "побитовое ИЛИ (OR)" над передаваемыми аргументами. Число аргументов может быть больше двух.
Пример
--a = 00101101
--b = 10001001
c=bit.BitOr(a,b);
--c = 10101101
Возвращает результат операции "побитовое исключающее ИЛИ (XOR)" над передаваемыми аргументами. Число аргументов может быть больше двух.
Пример
--a = 00101101
--b = 10001001
c=bit.BitXor(a,b);
--c = 10100100
Возвращает результат операции "побитовый логический сдвиг влево на заданную величину" (без переноса бит) над передаваемым аргументом.
Аргументы:
1 – сдвигаемое число;
2 – величина сдвига.
Пример
--a = 00101101
b=bit.BitLshift (a,3);
--b = 01101000
Возвращает результат операции "побитовый логический сдвиг вправо на заданную величину" (без переноса бит) над передаваемым аргументом.
Аргументы:
1 – сдвигаемое число;
2 – величина сдвига.
Пример
--a = 00101101
b=bit.BitRshift(a,3);
--b = 00000101
Возвращает результат операции "побитовый арифметический сдвиг вправо на заданную величину" над передаваемым аргументом.
Аргументы:
1 – сдвигаемое число;
2 – величина сдвига.
Пример
--a = 11111010
b=bit.BitArshift(a,1);
--b = 11111101