Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите написать программу на с++ для перевода чисел из системы счисления

Ответить
Настройки темы
C/C++ - [решено] Помогите написать программу на с++ для перевода чисел из системы счисления

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите пожалуйста.Напишите программу на с++ которая выполняет перевод числа из системы счисления с заданным основанием Р(где Р 2...9) в десятичную систему счисления.На вход программы подается основание Р,число Х в системе счисления с заданным основанием.В числе Х количество цифр не превосходит 9.

Отправлено: 21:28, 26-02-2013

 

Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


В интернете хватает примеров с переводом в разные системы исчисления, думаю не составит труда интерпретировать их на все системы от 2 до 9.

-------
Кривые руки исправляются опытом.


Отправлено: 01:02, 27-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да я смотрел их но у меня не получается сделать алгоритм перевода...Кому не сложно помогите

Отправлено: 14:56, 27-02-2013 | #3


Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


Какой именно момент тебе не ясен?

-------
Кривые руки исправляются опытом.


Отправлено: 15:07, 27-02-2013 | #4


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как создать формулу для перевода...
Допустим Ввожу основание
Код: Выделить весь код
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <windows.h>
using namespace std;
int main ()
{
    char str [64];
    int p;    
    int s=0;   
    CharToOem("Введите основание P",str);
    cout << str;
    char x[10];
    CharToOem("Введите число ",str);
    cout << str;
    cin >> p;
    cin.getline (x,10);
    int i;
   int count = 0;
	for (i = 0; x[i] != '\0'; i++)
	{
		if ( x[i] != ' ' )
			count++;
             
    }
	
    cout << count << endl;

    system("pause");
    return 0;
}
Вот получается количество символов подсчитано...Дальше я не знаю как обратиться к каждому символу отдельно по идее так но не получается
Код: Выделить весь код
int  a[const]
for(int n=1;n<=9;n++){

s=s+a[i]*P^(const-i)
}
cout << s
И почему-то после того как я ввожу основание он выдает что введенное число х =0 и выключается

Последний раз редактировалось Delirium, 28-02-2013 в 10:25.


Отправлено: 15:24, 27-02-2013 | #5


Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


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

-------
Кривые руки исправляются опытом.


Отправлено: 17:23, 27-02-2013 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Это если из десятичной в системы в заданным основанием а мне наоборотДля того что бы перевести допустим 1011 в двоичной в десятичную нужно 1*2^3+0*2^2+1*2^1+1*2^0

Отправлено: 20:16, 27-02-2013 | #7


Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


Вот функция перевода. Библиотеку math.h не забудь подключить.
Код: Выделить весь код
int ConvertToDecimal(int number, int base)
{
	int count = 0, result = 0;
	do
	{
		int mod = number % 10;
		result += pow(base, count)*mod; 
		count++;
		number /= 10;
	}while(number);
	return result;
}

-------
Кривые руки исправляются опытом.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:01, 27-02-2013 | #8


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо большое выручил)

Отправлено: 17:51, 28-02-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите написать программу на с++ для перевода чисел из системы счисления

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Лучшая программа для перевода из системы RAW назад в NTFS THEDOGG Хочу все знать 25 19-01-2018 16:11
C/C++ - помогите написать программу на C++ feytan Программирование и базы данных 10 27-09-2011 10:42
Delphi - Помогите написать программу для поиска суммы двух знаком двухзначного числа. highlander5 Программирование и базы данных 6 28-01-2011 12:38
C/C++ - Помогите пожалуста. Нужно написать программу на С. Oganes Программирование и базы данных 1 20-12-2010 12:29
C/C++ - Помогите написать программу на С++ rivz2007 Программирование и базы данных 4 05-09-2010 16:54




 
Переход