You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
961 B
38 lines
961 B
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
|
|
|
|
int convert_base(char *p, int b, int s);
|
|
|
|
int main() {
|
|
char p[] = "111";
|
|
int b = 10;
|
|
int s = 8;
|
|
|
|
int result = convert_base(p, b, s);
|
|
printf("Converted number: %d\n", result);
|
|
|
|
return 0;
|
|
}
|
|
// Функция для конвертации числа из одного основания в другое
|
|
int convert_base(char *p, int b, int s) {
|
|
int decimal = 0;
|
|
int len = strlen(p);
|
|
|
|
// Преобразование числа в десятичную систему счисления
|
|
for (int i = 0; i < len; i++) {
|
|
decimal += (p[i] - '0') * pow(b, len - i - 1);
|
|
}
|
|
|
|
// Преобразование десятичного числа в нужное основание
|
|
int result = 0;
|
|
int index = 0;
|
|
while (decimal > 0) {
|
|
result += (decimal % s) * pow(10, index);
|
|
decimal /= s;
|
|
index++;
|
|
}
|
|
|
|
return result;
|
|
} |