Перевод из 10-ной в 2-ную систему счисления - C (СИ)
Формулировка задачи:
Помогите пожалуйста! Задали написать программу перевода из 10 в 2 сс. Но у меня почему-то она не работает. Или я не правильно что-то делаю.
int main()
{ int x,n,y;
scanf("%d",&x);
while (x > 0)
y = x % 2;
n = y + n;
x = x / 2;
printf ("%d",n);
getch();
}Решение задачи: «Перевод из 10-ной в 2-ную систему счисления»
textual
Листинг программы
int main()
{ int x,y, i; char t[101];
scanf("%d",&x);
t[100] = '\0'; i=100;
while (x > 0)
y = x % 2;
t[--i] = '0' + y;
x = x / 2;
}
printf ("%s\n", t+i);
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется перевод числа из десятичной системы счисления в двоичную. Вот список действий, которые выполняются в коде:
- Переменная
xинициализируется значением, которое вводится пользователем. - Переменная
tинициализируется нулевым символом ('\0'). - Переменная
iинициализируется значением 100. - В цикле while выполняется перевод числа из десятичной системы в двоичную.
- В каждой итерации цикла значение переменной
yравно остатку от деленияxна 2. - Значение
yпреобразуется в символ и записывается в массивtс индексомi. - Значение
iуменьшается на 1 перед каждой новой итерацией цикла. - Значение
xделится на 2 перед каждой новой итерацией цикла. - После окончания цикла выполняется вывод строки, которая хранится в массиве
t. - Программа ожидает нажатия клавиши для завершения работы.
- Возвращается 0, что означает успешное завершение программы.