Показать сообщение отдельно

  #6  
Старый 17.10.2009, 17:52
Mozy
Познающий
Регистрация: 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..
 
Ответить с цитированием