напиши на си
```c
typedef struct
{
int bits[4];
} s21_decimal;
```
### Арифметические операторы
| Название оператора | Оператор | Функция |
| ------ | ------ |------------------------------------------------------------------------------------|
| Сложение | + | int s21_add(s21_decimal value_1, s21_decimal value_2, s21_decimal *result) |
| Вычитание | - | int s21_sub(s21_decimal value_1, s21_decimal value_2, s21_decimal *result) |
| Умножение | * | int s21_mul(s21_decimal value_1, s21_decimal value_2, s21_decimal *result) |
| Деление | / | int s21_div(s21_decimal value_1, s21_decimal value_2, s21_decimal *result) |
Функции возвращают код ошибки:
- 0 - OK
- 1 - число слишком велико или равно бесконечности
- 2 - число слишком мало или равно отрицательной бесконечности
- 3 - деление на 0
*Уточнение про числа, не вмещающиеся в мантиссу:*
- *При получении чисел, не вмещающихся в мантиссу при арифметических операциях, использовать банковское округление (например, 79,228,162,514,264,337,593,543,950,335 - 0.6 = 79,228,162,514,264,337,593,543,950,334)*
- Библиотека должна быть разработана на языке С стандарта C11 с использованием компиятора gcc;
- Код библиотеки должен находиться в папке src в ветке develop;
- Не используй устаревшие и выведенные из употребления конструкции языка и библиотечные функции. Обрати внимания на пометки legacy и obsolete в официальной документации по языку и используемым библиотекам. Ориентируйся на стандарт POSIX.1-2017;
- При написании кода необходимо придерживаться Google Style;
- Оформи решение как статическую библиотеку с названием *s21_decimal.a* (с заголовочным файлом s21_decimal.h);
- Библиотека должна быть разработана в соответствии с принципами структурного программирования;
- Перед каждой функцией используй префикс s21_;
- Подготовь полное покрытие unit-тестами функций библиотеки c помощью библиотеки Check;
- Unit-тесты должны покрывать не менее 80% каждой функции;
- Предусмотри Makefile для сборки библиотеки и тестов (с целями all, clean, test, s21_decimal.a, gcov_report);
- В цели gcov_report должен формироваться отчёт gcov в виде html страницы. Для этого unit-тесты должны запускаться с флагами gcov;
- При реализации decimal ориентируйся на [двоичное представление](#двоичное-представление) с целочисленным массивом `bits`, как указано в [примере выше](#пример). Соблюдай положение разрядов числа в массиве `bits`;
- Запрещено использование типа __int128;
- Конечные нули можно как оставлять, так и удалять (за исключением функции `s21_truncate`);
- Определяемый тип должен поддерживать числа от -79,228,162,514,264,337,593,543,950,335 до +79,228,162,514,264,337,593,543,950,335.
Ирина
Сургутский политехнический колледж
Работа выполнена быстро и очень качественно! Спасибо большое исполнителю!)
Вика
САФУ
Заказала сегодня,сегодня и получила решение. Очень хорошо,без замечаний.
Надежда
СПбГМУ им.И.П.Павлова
Анна Григорьевна досрочно и на самом высшем уровне выполнила работу. Помогла выделить глав...
Полина
МГИМО
Спасибо большое Анне! Прекрасно выполнила работу по обществознанию, советую