(no subject)
May. 7th, 2007 10:26 am![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Доброе утро всем.
Тут одна знакомая девушка попросила помочь с лабами по программированию на си.
Я же не прогал уже пару лет точно.
Ну ничего, почти все сделал. (ай, маладец) =)
Но одна затычка вышла.
Есть задача - написать прогу, переводящую число, скажем из 4-чной системы счисления, в, скажем 5-ричную, с промежуточной 2-ичной с.с..
Ума не приложу, как сделать,, тем более, и времени особо нет думать. Вот если с 10-чной промежуточной... Это можно. Но 2-ная...
Может кто-нибудь подсказать как это сделать?
Тут одна знакомая девушка попросила помочь с лабами по программированию на си.
Я же не прогал уже пару лет точно.
Ну ничего, почти все сделал. (ай, маладец) =)
Но одна затычка вышла.
Есть задача - написать прогу, переводящую число, скажем из 4-чной системы счисления, в, скажем 5-ричную, с промежуточной 2-ичной с.с..
Ума не приложу, как сделать,, тем более, и времени особо нет думать. Вот если с 10-чной промежуточной... Это можно. Но 2-ная...
Может кто-нибудь подсказать как это сделать?
no subject
Date: 2007-05-07 06:39 am (UTC)Нужно представление четверичного числа в двоичной и пятеричной системах?
no subject
Date: 2007-05-07 07:17 am (UTC)написать прогу, выполняющую переход из заданной системы счисления в двоичную и из двоичной в другую заданную систему счисления.
Re
Date: 2007-05-07 06:50 am (UTC)Re: Re
Date: 2007-05-07 07:18 am (UTC)написать прогу, выполняющую переход из заданной системы счисления в двоичную и из двоичной в другую заданную систему счисления.
no subject
Date: 2007-05-07 07:04 am (UTC)no subject
Date: 2007-05-07 07:19 am (UTC)но мне интересен сам алгоритм задачи, как это вообще сделать
no subject
Date: 2007-05-07 08:21 am (UTC)из четверичной в двоичную перевести легко, достаточно идти по строковому представлению числа и тупо заменять каждый символ на пару по правилам:
'0'->"00"
'1'->"01"
'2'->"10"
'3'->"11"
После чего отсечь нуль слева, если он присутствует (для красоты, на результат не влияет).
Ну можно и более "честным" путём:
int from4(char* s)
{
int result=0;
int power=0;
char* p=s+strlen(s);
char ch;
while(--p>=s)
{
ch=*p;
ch-='0';
result+=pow(4, power++)*ch;
}
return result;
}
код не проверял, но вроде должен работать.
no subject
Date: 2007-05-07 08:32 am (UTC)но на самом деле больше интересует алгоритм перевода из любой абстрактной с.с. в двоичную и из двоичной в любую другую.
т.е. не только, скажем, из 4-ной, но и,, скажем, из 7-ной.
но вообще большое спасибо за помощь!
no subject
Date: 2007-05-07 02:28 pm (UTC)no subject
Date: 2007-05-08 05:33 am (UTC)