forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Системы счисления (http://forum.boolean.name/showthread.php?t=120)

Magus 21.09.2005 19:52

Перевод из любой системы счисления (в пределах разумного) в любую.

Код:

#include <stdio.h>
#include <string.h>

main()
{
        int n=0,l;
        int j;
        int b,bg;
        int res[100];
        char s[100];
        printf("Enter the number:");
        scanf("%s",s);
        l=strlen(s);
        printf("Enter base:");
        scanf("%d",&b);
        printf("Enter goal base:");
        scanf("%d",&bg);
       
        for(j=0;j<l;j++)
        {
 s[j]=toupper(s[j]);
 if(isdigit(s[j])&&(s[j]-'0')<b)
 {
        n=n*b+s[j]-'0';
 }else if(s[j]>='A'&&s[j]<='Z'&&(s[j]-'A'+10)<b)
 {
        n=n*b+s[j]-'A'+10;
 }else
 {
        printf("error\n");
        exit(-1);
 }//else
        }//for

        for(j=0;n!=0;j++)
        {
 res[j]=n%bg;
 n=n/bg;
        }//for

        printf("result:\n");
        for(j--;j>=0;j--)
        {
 if(res[j]<=9)
 {
        printf("%c",'0'+res[j]);
 }else
 {
        printf("%c",'A'+res[j]+10);
 }//else
        }//for
}//main



Часовой пояс GMT +4, время: 09:09.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot