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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2008, 18:21   #1
Ямагути
 
Регистрация: 04.12.2008
Сообщений: 3
По умолчанию Сложение в 23ичной системе счисления

Помогите написать прогу которая складывает два числа в 23ичной системе... Пожалуйста
Ямагути вне форума Ответить с цитированием
Старый 04.12.2008, 18:54   #2
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Ты сам что нить юудешь писать, или за тебя полностью прогу написать?!?!?! Оо
Если второе, то это прога на заказ (за деньги)!
StarWorm вне форума Ответить с цитированием
Старый 04.12.2008, 19:41   #3
Ямагути
 
Регистрация: 04.12.2008
Сообщений: 3
По умолчанию

Хотябы примерный алгоритм.. Были идеи перевести из 23 в 10 но встрял.. Перевожу в типе стринг а как про суммровать хз.
Ямагути вне форума Ответить с цитированием
Старый 04.12.2008, 20:04   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

ИМХО наиболее простой (для человеческого восприятия) вариант:
перевести слогаемые в десятичную систему счисления, сложить, результат перевести в исходную систему счисления.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 04.12.2008, 20:42   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

перевод в 10-ричную систему и назад, либо сложение столбиком как в школе. оно применительно ко всем системам счисления. Можно взять в качестве системы счисления символы 'A'.. 'W'. 'A' = 0. W = 22. Хотя может там не W будет, я мог ошибиться в расчетах, но суть не меняется.
Вводим числа в виде обычной строки.
пробегаем по слагаемым справа-налево и складываем поэлементно. Элементы у нас типа char, так что само складывание не нужно писать ручками.
За ноль здесь у нас будет код символа A, за 22 - код символа W.

Допустим нужно сложить K и L, значит K + L = 'K' + 'L' - 'A'
pu4koff вне форума Ответить с цитированием
Старый 04.12.2008, 21:18   #6
Ямагути
 
Регистрация: 04.12.2008
Сообщений: 3
По умолчанию

Спасибо.. буду думать)
Ямагути вне форума Ответить с цитированием
Старый 04.12.2008, 21:21   #7
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Вот примерно так!!!
Код:
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <cmath>

using std::cout;
using std::endl;
using std::cin;
using std::setw;

int intArr[23]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
char strArr[24]="0123456789abcdefghijklm";

int is(char c)
{
	for(int i=0;i<23;i++)
		if(strArr[i]==c)
			return intArr[i];
}

char isChar(int n)
{
	for(int i=0;i<23;i++)
		if(intArr[i]==n)
			return strArr[i];
}

int main()
{
	char buf[255];
	for(int i=0;i<23;i++)
	{
		cout.width(3);cout<<intArr[i];cout<<" - ";cout.width(3);cout<<strArr[i]<<"\n";
	}
	char x1[]="11",x2[]="1m";
	char* x3=new char[strlen(x1)+2];
	for(int i=0;i<strlen(x1)+1;i++)
	{
		x3[i]='0';
	}
	if(true)
	{
		int pos1=strlen(x1);
		int pos2=strlen(x2);
		int pos3=(strlen(x1)<=strlen(x2)?strlen(x2):strlen(x1));
		x3[pos3+1]=NULL;
		while(pos3!=0)
		{
			int tmp1,tmp2;
			if(pos1==0)
				tmp1=0;
			else
			{
				tmp1=is(x1[pos1-1]);
				pos1--;
			}
			if(pos2==0)
				tmp2=0;
			else
			{
				tmp2=is(x2[pos2-1]);
				pos2--;
			}

			x3[pos3-1]=isChar(is(x3[pos3-1])+(tmp1+tmp2)/23);
			x3[pos3]=isChar(is(x3[pos3])+(tmp1+tmp2)%23);
			pos3--;
		}
	}
	cout<<x3;

	delete [] x3;
	getch();
}
StarWorm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Сложение значений Torrenter Компоненты Delphi 2 11.01.2008 19:14
Инфа о системе Sargon Работа с сетью в Delphi 2 23.12.2007 00:52
Поразрядное сложение AlexBee Общие вопросы C/C++ 1 26.10.2007 22:45
Деление чисел в двоичной системе счисления Mss_Smith Помощь студентам 9 04.05.2007 17:02