Perl-модуль Bit::Vector#

Perl-Bit-Vector – это инструмент для работы с битовыми векторами, множествами целых чисел и большими целыми числами (big integers) в языке Perl. C-ядро данного пакета можно использовать автономно в других C-приложениях, Perl не обязателен.

Основные функции perl-Bit-Vector:

  • поддержка битовых векторов любого размера;

  • реализация основных операций с битами: установка, сброс, инверсия, побитовые логические операции;

  • эффективное хранение и извлечение информации о состоянии;

  • синтез текста по правилам булевых выражений;

  • преобразование форматов файлов данных;

  • работа с большими объемами данных.

Установка#

Для установки Perl-Bit-Vector выполните команду:

dnf install perl-Bit-Vector

Примеры использования#

Примечание

Перед запуском убедитесь, что файл имеет права на выполнение.

  • Скрипт для создания и управления битами:

    use Bit::Vector;
    
    my $vec = Bit::Vector->new(12); 
    
    $vec->Bit_On(0); 
    $vec->Bit_On(5);
    $vec->Bit_On(11);
    
    print "Binary: " . $vec->to_Bin() . "\n";
    print "Hex:    " . $vec->to_Hex() . "\n";
    print "Decimal:" . $vec->to_Dec() . "\n";
    

    Где:

    • $vec->new(12) – создание пустого битового массива длиной 12;

    • Bit_On(0) – указание наименьшего бита;

    • $vec->Bit_On(11)– указание наибольшего бита.

    Пример вывода:

    Binary: 100000100001
    Hex:    821
    Decimal:2081
    
  • Скрипт для вычисления больших чисел введите:

    use Bit::Vector;
    
    my $x = Bit::Vector->new_Dec(512, "123456789012345");
    my $y = Bit::Vector->new_Dec(512, "987654321");
    
    my $sum = $x->Clone();
    $sum->Add($y);             
    
    my $mul = $x->Clone();
    $mul->Multiply($y);        
    
    print "x = " . $x->to_Dec() . "\n";
    print "y = " . $y->to_Dec() . "\n";
    print "x + y = " . $sum->to_Dec() . "\n";
    print "x * y = " . $mul->to_Dec() . "\n";
    

    Где:

    • new_Dec($size, $numder)) – создание вектора, представляющего десятичное число;

    • Add, Multiply – указание арифметических операций.

    Пример вывода:

    x = 123456789012345
    y = 987654321
    x + y = 123457776666666
    x * y = 121932631124678368779028405
    

    Примечание

    Указанные скрипты необходимо сохранить в файл, например, bitvector_test.pl. Для запуска такого скрипта используйте команду perl bitvector_test.pl.