Здесь предлагается возможность перевода из любой системы счисления в любую от двоичной до 128-ричной. В последней после цифр используются буквы: сначала строчные латинские, затем заглавные латинские, а потом то же с кириллицей. Всего получается 128 символов. Переводить можно числа с любым количеством знаков. Но здесь мы ограничимся 128-разрядными числами.
Код:
// 181939.cpp : Defines the entry point for the console application. // #include<conio.h> #include<stdio.h> #include<stdlib.h> #include <windows.h> #include <locale.h>
printf("\nВведите число в основании %d:"); scanf("%s", number); int l=strlen(number)-1; for(int i=l;i>=0;i--) { int pos; pos=strchr(NumSet,number[i])-NumSet; n*=base1; n+=pos; } itoa(n,number1,base2); printf(number1); return 0; }
Ответ отправил: Гаряка Асмик (Профессор)
Ответ отправлен: 19.01.2011, 20:17
Номер ответа: 265515 Армения, Ереван Тел.: 37493385079 Адрес сайта:http://rus-kniga.biz/tv11073127-3155712.html ICQ # 166073765 Mail.ru-агент: hasmikgaryaka@bk.ru Абонент Skype: hasmik7
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 265515
на номер 1151 (Россия) |
Еще номера »
Ответ поддержали (отметили как правильный):
1 чел.
Отвечает denura (4-й класс) :
Здравствуйте, Наталия! Решение я взял из архива собственных задач (когда-то делал это сам):
void main(void) { printf("\nВведите число:"); scanf("%d",&n); printf("\nИз какой ситемы в какую:"); scanf("%d %d",&s1,&s2); s=0; d=1; while (n) {s=s+d*(n%10); n=n/10; d=d*s1;} d=0; while (s) {n1[d]=s%s2; s=s/s2; d=d+1;}
for(s=d-1;s!=-1;s--) printf("%d",n1[s]); getch(); }
При переводе в системы счисления с основанием более 10, где в представлении числа используются буквы, вид конечного числа будет не совсем корректен.
-----
∙ Отредактировал: Киселёва Алёна aka Verena (Профессор)
∙ Дата редактирования: 20.01.2011, 14:21 (время московское)
Ответ отправил: denura (4-й класс)
Ответ отправлен: 19.01.2011, 22:29
Номер ответа: 265517 Россия, Нижний Новгород
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 265517
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.