Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2017, 23:36   #1
Verpeax
Новичок
Джуниор
 
Регистрация: 09.05.2017
Сообщений: 3
По умолчанию Перевод из одной системы счисления в другую

Ребят, прошу
Напишите программу перевода чисел из одной системы

счисления в другую. Систему счисления (десятичная, двоичная,

восьмеричная или шестнадцатеричная) для задания и перевода числа

выбирает пользователь.
Код:
#include "stdafx.h"
#include<stdio.h>
#include<ctype.h>
#include <math.h>
#include<stdlib.h>


void IsErrorNotation(int i) { /*проверка ошибок ввода*/
	if (i<2 || i>16) {
		puts("Error: numeric system must be between [2...16]");
		exit(1);
	}
}

void IsErrorNumber(char* a, int basefrom) {  /*проверка ошибок ввода*/
	if (basefrom <= 10) {
		for (; *a; ++a) {
			if (*a<48 || *a >= 48 + basefrom) {
				printf("Error: all inputted number symbols must be between [0...%d]", basefrom - 1);
				exit(1);
			}
		}
	}
}

int main() {
	int i = 0, x = 0, basefrom, baseto;
	char a[20] = { '\0' }, b[20], *p = a;
	puts("Input initial numeric system [2...16]"); /*исходная система счисления*/
	scanf("%d", &basefrom);
	IsErrorNotation(basefrom);
	puts("Input final numeric system [2...16]"); /*результирующая система счисления*/
	scanf("%d", &baseto);
	IsErrorNotation(baseto);
	getchar();
	printf("Input number in %d notation:\n", basefrom); /*само число*/
	gets_s(a);
	IsErrorNumber(a, basefrom);
	while (*(p + 1)) ++p;
	for (; p >= a; --p, ++i) {
		if (*p>'9') {
			*p = toupper(*p);
			*p -= 7;
		}
		x += (*p - 48)*pow(basefrom, i);
	}
	printf("number in 10 notation:\n%d\n", x);
	i = 0;
	while (x) {
		b[i] = x%baseto;
		x /= baseto;
		++i;
	}
	printf("number in %d notation:\n", baseto);
	while (--i >= 0) {
		b[i]>9 ? printf("%c", b[i] + 55) : printf("%d", b[i]);
	};
	system("pause");
	return 0;
Вот сам собственно код, когда ввожу данные он выкидывает, не пойму в чем причина!

Последний раз редактировалось Verpeax; 10.05.2017 в 20:25.
Verpeax вне форума Ответить с цитированием
Старый 10.05.2017, 10:04   #2
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию Ответ по теме.

Вот нашел программу, которая переводит из десятичной системы счисления в любую небуквенную, т.е. до десятичной(двоичная или восьмеричная, например).
Код:
int num, sys, num2=0, i;
cout << "\nEnter nomer:" << endl;
cin >> num;
cout << "Enter sistemu schicleniya:" << endl;
cin >> sys;
for(i = 0; num >= sys-1; i++)
{
    num2 += (num%sys)*pow(10, i);
    num /= sys;
}
num2 += num*pow(10, i++);
cout << num2 << endl;
Ставьте теги кода, кстати, когда выкладываете свой код.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 10.05.2017, 14:03   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Так вот же она эта программа! А что Вам еще-то нужно?!:D
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 10.05.2017, 20:19   #4
Verpeax
Новичок
Джуниор
 
Регистрация: 09.05.2017
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
Так вот же она эта программа! А что Вам еще-то нужно?!:D
Спасибо большое, выручил!!!!!!!!!!!!
Verpeax вне форума Ответить с цитированием
Старый 10.05.2017, 20:37   #5
Verpeax
Новичок
Джуниор
 
Регистрация: 09.05.2017
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
Так вот же она эта программа! А что Вам еще-то нужно?!:D
Не могли бы объяснить, что является в коде входными и выходными данными, пожалуйста, я плохо разбираюсь в этом

В моем коде)

Последний раз редактировалось Verpeax; 10.05.2017 в 20:39.
Verpeax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из одной системы счисления в другую fr0st1k123 Общие вопросы C/C++ 5 29.12.2015 17:26
Перевод из одной системы счисления в другую колянчик1712 Помощь студентам 0 25.12.2011 15:56
перевод чисел из одной системы счисления в другую GAngelika Паскаль, Turbo Pascal, PascalABC.NET 2 16.12.2010 09:36
Перевод из одной системы счисления в другую на С++ innaa639 Помощь студентам 1 12.04.2010 14:34
Перевод из одной системы счисления в другую Sky_VSUH Помощь студентам 1 28.02.2008 20:18