Aritra94 Ответов: 2

Преобразование двоичного кода в восьмеричный в C без использования функции


Я пытался сделать программу для преобразования двоичного кода в восьмеричный в 'c' без использования функции, но я думаю, что моя логика неверна.

Что я уже пробовал:

//binary to octal conversion
#include<stdio.h>
#include<math.h>
int main()
{
	int binary,i=0,rem,c,count=0,x=0;
	printf("enter a binary number for conversion to decimal\n");
	scanf("%d",&binary);
	while(count<=3);
	{
	rem=binary%10;
	c=pow(2,i);
	x+=rem*c;
	i++;
	count++;
	}
	printf("the converted binary number to octal is:  %d",x);
	getch();
	return 0;
}

CPallini

Что вы имеете в виду под двоичным преобразованием в восьмеричное?
Это, например, 00100111 - > 047?
Примечание: двоичные и восьмеричные числа-это просто числовые представления (то есть строка должна быть ожидаема пользователем).

2 Ответов

Рейтинг:
6

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

Совет: возьмите лист бумаги и попробуйте сделать это вручную, ваша программа должна использовать ту же процедуру.


Aritra94

спасибо за предложение отладка действительно помогла мне в этом

Patrice T

Рад это знать.

Рейтинг:
15

OriginalGriff

О да, это неверно.
Это твое домашнее задание, так что никакого кода!

Но ... подумай об этом. Что такое Восьмеричный? Что такое Восьмеричные числа?
Ответ таков: база 8. Восьмеричные числа содержат только цифры от " 0 " до " 7 "включительно, точно так же, как десятичные (основание 10) содержат только цифры от" 0 " до " 9 "включительно, а двоичные (основание 2) содержат только цифры" 0 " и "1".

Ваш код даже не пытается использовать Восьмеричный...

Я настоятельно рекомендую вам потратить некоторое время на разработку того, как использовать отладчик - Google поможет вам в этом, просто google 'C', название C IDE, которую вы используете, и "отладчик", и он должен дать вам объяснение. Это сэкономит вам много волос, когда вы доберетесь до этой стадии!


Aritra94

Спасибо..теперь я исправил программу, и она работает нормально

OriginalGriff

Пожалуйста!