Что это
Маленькая библиотека для работа с последовательностями бит
Как юзать
local bit_array = require("bit_array")
--Создаем массив битов разметом 100, заполненный единицами
local a = bit_array.create{sizeInBits = 100, fill = 1}
--можно еще так и так
local a = bit_array.create(100, 1)
local a = bit_array.create(100, true)
--Создаем массив битов разметом 100, заполненный нулями
local a = bit_array.create{sizeInBits = 100, fill = 0}
--можно еще так и так
local a = bit_array.create{sizeInBits = 100}
local a = bit_array.create(100)
local a = bit_array.create(100, false)
--Устанавливаем первый бит на 1
a:set(1, true)
--можно еще так
a:set(1, 1)
--Устанавливаем первый бит на 0
a:set(1, false)
--можно еще так
a:set(1, 0)
--Получаем значение второго бита
local second = a:get(2)
--Схватываем ошибку выхода за пределы массива
a:set(101, true)
a:get(101)
--Получаем количество единичных битов
local ones = a:countOf(true)
--можно еще так
a:countOf(1)
--Получаем количество нулевых битов
local zeros = a:countOf(false)
--можно еще так
a:countOf(0)
--Устанавливаем биты одного массива другому начиная с индекса 3
local b = bit_array.create(10, 1)
a:setArray(3, b)
--Создаем новый массив, который содержит биты из массива а, с первого по девятый
local c = bit_array.createBasedOn{array = a, fromIndex = 1, toIndex = 9}
--Преобразовываем в строку
local stringRepr = a:toString()
--Создаем из строки
local b = bit_array.fromString(stringRepr)
Исходный код
https://github.com/hohserg1/OpenComputersPrograms/blob/master/simple_libs/bit_array.lua
Команда для скачивания
wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/simple_libs/bit_array.lua /home/lib/bit_array.lua