Skip to content

Библиотека C++ для длинной арифметики. Поддерживает операции сложения и вычитания. Имеется удобный интерфейс обработки ошибок.

Notifications You must be signed in to change notification settings

tastydata0/libBigint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

libBigint

Библиотека C++ для длинной арифметики. Поддерживает операции сложения и вычитания. Имеется удобный интерфейс обработки ошибок.

Поддерживает числа как минимум до миллиона цифр (а именно, до $2^{20}$). Числа, заходящие за этот предел должны работать корректно, но тестирование производилось на числах, размером не более $2^{20}$ цифр.

Компиляция библиотеки

Для компиляции используйте cmake, который создаст файл сборки, например Makefile для утилиты make. Используйте флаг -G для cmake, если хотите выбрать ninja или другию систему сборки.

git clone https://github.com/tastydata0/libBigint && cd libBigint
cmake .
make

После этих команд в папке build появятся нужные .so файлы.

Работа с библиотекой

Подключите библиотеку через систему cmake или другую. В основном файле подключите заголовок Bigint.h, предварительно добавив его в свой проект. Если он находится отдельно от ваших файлов, не забудьте обновить includePath.

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

#include <iostream>
#include "Bigint.h"

int main()
{
    Bigint a("123456789876543212345678");
    Bigint b(-1923567);

    std::cout << (a + b).toString() << std::endl; // 123456789876543210422111
}

Обработка ошибок

Bigint может иметь несколько видов ошибок. Они возникают на этапе создания объекта, если была передана некорректная строка, либо если объект является суммой или разностью операндов, хотя бы у одного из которых есть ошибка.

Ошибка Описание
NoError Отсутствие ошибки
UnexpectedCharacter Наличие неподходящего символа во входной строке
NoDigitsProvided Наличие знака "-", но отсутствие цифр во входной строке
EmptyString Передана пустая строка

About

Библиотека C++ для длинной арифметики. Поддерживает операции сложения и вычитания. Имеется удобный интерфейс обработки ошибок.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published