Прибавить 1 к десятичному числу записанному в двоичной системе счисления - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Прибавить 1 к десятичному числу записанного в двоичной системе счисления у меня есть такой код:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. void dvoich(int x1)
  5. {
  6. int i, b;
  7. int c = 0;
  8. for(i=0;x1 > 0;i++)
  9. {
  10. b = x1 % 2;
  11. x1 = (x1-b)/2;
  12. c += (b * pow(10,i));
  13. }
  14. printf("\nDvoichnoe chislo: %d",c);
  15. }
  16. int main()
  17. {
  18. int a;
  19. printf("Vvedite desyatichnoe chislo:");
  20. scanf("%d",&a);
  21. dvoich(a);
  22. getch();
  23. }
!!!P.S если просто при переводе с десятичного в двоичную ,небольшая проблема выводит на 1 меньше чем надо Например (4=99,вместо 4=100);(5=100,вместо 5=101) и т.д.

Решение задачи: «Прибавить 1 к десятичному числу записанному в двоичной системе счисления»

textual
Листинг программы
  1. void dvoich(int x)
  2. {
  3.     int i,c,d=1;
  4.     for(c=i=0; x; i++,d*=10)
  5.     {
  6.         c+=x%2*d;
  7.         x/=2;
  8.     }
  9.     printf("\nDvoichnoe chislo: %d\n",c);
  10. }

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

  1. Передаем в функцию int x - десятичное число
  2. В функции объявляем переменные:
    • i - счетчик циклов
    • c - результат преобразования числа из двоичной системы счисления
    • d - множитель для получения значения десятичной цифры в зависимости от разряда числа
  3. Запускаем цикл for, который выполняется до тех пор, пока x не равно нулю:
    • При каждой итерации цикла значение переменной i увеличивается на 1
    • Значение переменной d умножается на 10 в соответствии с разрядом числа
  4. Внутри цикла выполняем следующие действия:
    • Получаем остаток от деления x на 2 и умножаем его на значение переменной d
    • Полученное значение добавляем к переменной c
    • Делим x на 2
  5. После завершения цикла выводим значение переменной c, которое является результатом преобразования числа из двоичной системы счисления в десятичную систему счисления
  6. Возвращаем 0, чтобы функция не возвращала значение, а продолжала работу

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы