Разработать конвертер перевода из десятичной системы счисления в восьмиричную и двоичную - 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); 
}

Объяснение кода листинга программы

  1. include — подключаем стандартную библиотеку ввода/вывода
  2. int whole(int number, int Q) — объявляем функцию перевода из десятичной системы счисления в восьмиричную и двоичную
  3. int main() — объявляем основную функцию программы
  4. float number; — объявляем переменную для ввода числа
  5. int Q; — объявляем переменную для ввода новой шкалы значений
  6. printf(Enter a number -); — выводим приглашение для ввода числа
  7. scanf(%f,&number); — считываем введенное число
  8. printf(Enter the new scale of notation -); — выводим приглашение для ввода новой шкалы значений
  9. scanf(%d,&Q); — считываем новую шкалу значений
  10. int N = 6; — объявляем переменную для количества знаков после запятой
  11. int whole_part; — объявляем переменную для целой части числа
  12. double fract_part; — объявляем переменную для дробной части числа
  13. whole_part = whole(number,Q); — вызываем функцию перевода целой части числа
  14. fract_part = fract(number,Q,N); — вызываем функцию перевода дробной части числа
  15. fract_part = whole_part + fract_part; — суммируем целую и дробную части числа
  16. printf(%f\n,fract_part); — выводим результат на экран

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы