
17.10.2009, 17:52
|
|
Познающий
Регистрация: 15.03.2009
Сообщений: 77
С нами:
9030397
Репутация:
73
|
|
Сообщение от sim32
C++
нужна программа для перевода в разные системы счисления - десятиричная, двоичная, шестнадцатиричная. кто-нибудь поможет?
Держи
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#pragma hdrstop
//------------------------------------------------
#pragma argsused
int CharToInt(char alpha)
{
if(alpha<58 )
return alpha - 48;
else
return alpha - 55;
}
int ConvertToDec(char *input , int sinp )
{
int sum = 0;
int pow = 1;
for(int i = strlen(input)-1; i>=0; i--)
{
sum+=CharToInt(input[i]) * pow;
pow*=sinp;
}
return sum ;
}
char *convertX(int input, int sout, char *out)
{
while(input!=0)
{
double j = input%sout;
input/=sout;
out--;
if(j<10)
*out = 48 + j;
else
*out = 55 + j;
}
return out;
}
int main(int argc, char* argv[])
{
printf("Vvedite iszhodnoe chislo: " );
char input[32] = "";
scanf("%s", &input);
printf("\nVvedite nachalnuiu codirovku: ");
int sinp;
scanf("%i", &sinp);
printf("\nVvedite conechnuiu codirovku: ");
int sout;
scanf("%i", &sout);
printf("\n\n= ");
char output[32];
output[31] = 0;
printf("%s", convertX(ConvertToDec(input, sinp), sout, output+31));
printf("\n\nNazsmite ljubuju klavisu...");
getch();
return 0;
}
Переводит из любой системы счисления в любую,
даже больше 16ичной(начинают использоваться буквы G H I и т.д. )
Сначала вводим число,затем его начальную систему счисления,затем в какую надо перевести.
Последний раз редактировалось Mozy; 17.10.2009 в 18:00..
|
|
|