Реализация типа decimal из языка C# на языке Си. Спецификация соответствует типу s21_decimal из Школы 21.
Проект написан с приоритетом на читаемость и понятность кода.
Обработка переполнения при арифметических операциях реализована с использованием расширенного типа s21_big_decimal.
Размер s21_big_decimal составляет шесть 32-битных переменных из расчёта, что максимальное число, которое может получится при арифметическом выражении - это произведение максимальных s21_decimal: 79228162514264337593543950335 * 79228162514264337593543950335 = 6277101735386680763835789423049210091073826769276946612225, что в двоичном видео составляет 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 - это 192 знака. 192 = 6 * 32.
Ресурсы при разработке: https://www.wolframalpha.com/ https://www.rapidtables.com/convert/number/decimal-to-binary.html