Прибавить 1 к десятичному числу записанному в двоичной системе счисления - C (СИ)
Формулировка задачи:
Прибавить 1 к десятичному числу записанного в двоичной системе счисления
у меня есть такой код:
!!!P.S если просто при переводе с десятичного в двоичную ,небольшая проблема выводит на 1 меньше чем надо
Например (4=99,вместо 4=100);(5=100,вместо 5=101) и т.д.
#include <stdio.h> #include <conio.h> #include <math.h> void dvoich(int x1) { int i, b; int c = 0; for(i=0;x1 > 0;i++) { b = x1 % 2; x1 = (x1-b)/2; c += (b * pow(10,i)); } printf("\nDvoichnoe chislo: %d",c); } int main() { int a; printf("Vvedite desyatichnoe chislo:"); scanf("%d",&a); dvoich(a); getch(); }
Решение задачи: «Прибавить 1 к десятичному числу записанному в двоичной системе счисления»
textual
Листинг программы
void dvoich(int x) { int i,c,d=1; for(c=i=0; x; i++,d*=10) { c+=x%2*d; x/=2; } printf("\nDvoichnoe chislo: %d\n",c); }
Объяснение кода листинга программы
- Передаем в функцию int x - десятичное число
- В функции объявляем переменные:
- i - счетчик циклов
- c - результат преобразования числа из двоичной системы счисления
- d - множитель для получения значения десятичной цифры в зависимости от разряда числа
- Запускаем цикл for, который выполняется до тех пор, пока x не равно нулю:
- При каждой итерации цикла значение переменной i увеличивается на 1
- Значение переменной d умножается на 10 в соответствии с разрядом числа
- Внутри цикла выполняем следующие действия:
- Получаем остаток от деления x на 2 и умножаем его на значение переменной d
- Полученное значение добавляем к переменной c
- Делим x на 2
- После завершения цикла выводим значение переменной c, которое является результатом преобразования числа из двоичной системы счисления в десятичную систему счисления
- Возвращаем 0, чтобы функция не возвращала значение, а продолжала работу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д