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

Битовый массив

Рекомендуемые сообщения

Что это

Маленькая библиотека для работа с последовательностями бит

Как юзать

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

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновлено: добавлена возможно конвертировать массив в строку и назад

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...