Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 16.09.2012, 00:48   #1
Anthoni
Пользователь
 
Регистрация: 16.09.2012
Сообщений: 10
Восклицание Сложение дробовых шестнадцатеричных чисел

Помогите написать программу, в которой можно ввести два числа (в 16-ричной системе) после чего в консоли показало результат их сложения.

Пробовал сделать с помощью строк, которые преобразовывал в числа, и потом добавлял. Но это работало только с целыми, с дробовыми не получается.

Не ужели надо переводить в 10ю, делать все действия, и переводить обратно? или есть встроенные методы решения данной проблемы?

Спасибо за помощь!
Anthoni вне форума Ответить с цитированием
Старый 16.09.2012, 09:25   #2
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Цитата:
Сообщение от Anthoni Посмотреть сообщение
Помогите написать программу, в которой можно ввести два числа (в 16-ричной системе) после чего в консоли показало результат их сложения.

Пробовал сделать с помощью строк, которые преобразовывал в числа, и потом добавлял. Но это работало только с целыми, с дробовыми не получается.

Не ужели надо переводить в 10ю, делать все действия, и переводить обратно? или есть встроенные методы решения данной проблемы?

Спасибо за помощь!
Сперва притензии, а потом объяснение: в какой разновидности русского языка Вы видели слова: "дробовых шестнадцатеричных"? - всегда было "дробных шестнадцетиричных"!
Теперь ответ: считываем число как строку и используя нижеприведенную методику переводим число:
Код:
try
		{
//сконвертированное число
				Double convertHexStringToDouble=0;	
			
//система счисления исходного числа
				Int32 value_base=16;
		//считанное число (у тебя здесь будет value_Hex=Console.ReadLine())
				String value_Hex="123A,456";
		//разбиваем целую и дробную часть числа(разделитель ",")
				String[] valueHex_Array=value_Hex.Split(',');
		
				
			//если у числа была и дробная и целая часть, то длинна массива будет равна 2
				if(valueHex_Array.Length==2)
				{
//создаем временную строковую переменную, в которую записываем строковое представление исходного числа в 10 системе счисления вместе с разделяющей запятой
					String tmp=Convert.ToInt32(valueHex_Array[0], value_base).ToString() + ","  + Convert.ToInt32(valueHex_Array[1], value_base).ToString();
				
//преобразуем строку в обычное вещественное число
					convertHexStringToDouble=Convert.ToDouble(tmp);
				}
				else
				{
//точно такая же система, что и выше
					String tmp=Convert.ToInt32(valueHex_Array[0], value_base).ToString();
				
					convertHexStringToDouble=Convert.ToDouble(tmp);					
				}
		
		}
//на всякий случай ловим исключения
		catch(Exception ex)
		{
			
		}
Посмотрел как работает - вроде бы нормально, правдо в ручную не проверял. Все эти операции можно сделать в одну строку, но решил расписать по-подробнее, чтобы было понятно
Не сочти за хамство: учи русский язык:
Цитата:
Сообщение от Anthoni Посмотреть сообщение
Но это работало только с целыми, с дробовыми не получается.

Не ужели надо переводить в 10ю, делать все действия, и переводить обратно? или есть встроенные методы решения данной проблемы?

Спасибо за помощь!
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.

Последний раз редактировалось Mixim; 16.09.2012 в 09:31.
Mixim вне форума Ответить с цитированием
Старый 16.09.2012, 13:09   #3
Anthoni
Пользователь
 
Регистрация: 16.09.2012
Сообщений: 10
По умолчанию

Спасибо за ответ.
Программа работает не правильно. Данный перевод не точный.
Уже реализовал как должно быть
Anthoni вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение чисел по шаблону GrabbeR Общие вопросы Delphi 1 12.05.2012 11:43
Сложение двух десятичных положительных чисел. целых чисел))) PEro_man Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.12.2010 12:40
сложение чисел s2dentishe Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 14.06.2010 20:33
сложение двух чисел pif Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 15.02.2009 12:51
Правила чтения шестнадцатеричных чисел (HEX) Arigato Свободное общение 7 07.08.2008 07:38


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840