Разработать конвертер перевода из десятичной системы счисления в восьмиричную и двоичную - C (СИ)
Формулировка задачи:
Здравствуйте .Помогите пожалуйста написать программу перевода Десятичной СС в другие системы
Решение задачи: «Разработать конвертер перевода из десятичной системы счисления в восьмиричную и двоичную»
textual
Листинг программы
#include <stdio.h>
int whole(int number, int Q)
{
int temp = 0;
int X = 1;
while (number != 0)
{
temp = temp + (number % Q) * X;
X *= 10;
number /= Q;
}
return temp;
}
double fract(float number, int Q, int N)
{
int temp_whole = 0;
float temp_fract = number - (int) number;
int temp_sum;
int st = 1;
while(N)
{
temp_fract *= Q;
temp_sum = temp_fract;
temp_whole = temp_whole * 10 + temp_sum;
temp_fract = temp_fract - temp_sum;
st *= 10;
N--;
}
temp_fract = temp_whole;
temp_fract /= st;
return temp_fract;
}
int main()
{
float number;
int Q;
printf("Enter a number - ");
scanf("%f",&number);
printf("Enter the new scale of notation - ");
scanf("%d",&Q);
int N = 6;
int whole_part;
double fract_part;
whole_part = whole(number,Q);
fract_part = fract(number,Q,N);
fract_part = whole_part + fract_part;
printf("%f\n",fract_part);
}
Объяснение кода листинга программы
- include
— подключаем стандартную библиотеку ввода/вывода - int whole(int number, int Q) — объявляем функцию перевода из десятичной системы счисления в восьмиричную и двоичную
- int main() — объявляем основную функцию программы
- float number; — объявляем переменную для ввода числа
- int Q; — объявляем переменную для ввода новой шкалы значений
- printf(
Enter a number -); — выводим приглашение для ввода числа - scanf(
%f,&number); — считываем введенное число - printf(
Enter the new scale of notation -); — выводим приглашение для ввода новой шкалы значений - scanf(
%d,&Q); — считываем новую шкалу значений - int N = 6; — объявляем переменную для количества знаков после запятой
- int whole_part; — объявляем переменную для целой части числа
- double fract_part; — объявляем переменную для дробной части числа
- whole_part = whole(number,Q); — вызываем функцию перевода целой части числа
- fract_part = fract(number,Q,N); — вызываем функцию перевода дробной части числа
- fract_part = whole_part + fract_part; — суммируем целую и дробную части числа
- printf(
%f\n,fract_part); — выводим результат на экран