Добавлен файл с вспомогательными функциями

This commit is contained in:
Михаил Батухтин 2023-06-03 19:10:35 +03:00
parent 4575d0c1d2
commit 5d5fd2172c
2 changed files with 85 additions and 0 deletions

72
func.c Normal file
View File

@ -0,0 +1,72 @@
/*
* delay.c
*
* Created: 03.06.2023 12:34:55
* Author: Admin
*/
#include "func.h"
void delay() {
for(volatile long i = 0; i < 1000; i++){};
}
int count_digits(long number) {
int count = 0;
if (number == 0) {
return 1;
}
if (number < 0) {
number = -number;
}
while (number > 0) {
number /= 10;
count++;
}
return count;
}
void split_digits(long number, int* digits, int size) {
int digit;
int index = 0;
if (number == 0) {
digits[0] = 0;
return;
}
if (number < 0) {
number = -number;
}
while (number > 0 && index < size) {
digit = number % 10;
digits[index] = digit;
number /= 10;
index++;
}
}
static char map(int digit) {
if (digit >= 0 && digit <= 9)
return digit + 0x09;
else
return 0x01;
}
void map_digits(char* arr, int *digits, int size) {
int idx = 0;
for (int i = size - 1; i >= 0; i--) {
arr[idx] = map(digits[i]);
idx++;
}
}
void prepare_data(char *arr, int number, int size) {
int digits[size];
split_digits(number, digits, size);
map_digits(arr, digits, size);
}

13
func.h Normal file
View File

@ -0,0 +1,13 @@
/*
* delay.h
*
* Created: 03.06.2023 12:35:06
* Author: Admin
*/
void delay();
void split_digits(long number, int* digits, int size);
int count_digits(long number);
void map_digits(char* arr, int *digits, int size);
void prepare_data(char *arr, int number, int size);