Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (09.11.2011 в 18:55)
Можно поступить следующим образом
#include <cstdlib>
#include <iostream>
using namespace std;

// Прототипы
int bin2dec(char *);
int four2dec(char *);
// Главная функция
int main (intchar*)
{
  // Число в четвертичной системе
  char A[10] = "3210";
  // Число в двоичной системе
  char B[10] = "10000001";
  // Преобразуем числа в десятичную систему
  // исчисления
  int adec = four2dec(A);
  int bdec = four2dec(B);
  // Вычисляем результат
  unsigned long cdec = (2 * adec + 3 * bdec);
  cdec *= cdec;
  // Выводим результат
  cout << cdec << endl;

  // Задержка перед закрытием
  system("PAUSE");

  return 0;
}
// Преобразование двоичного числа в десятичное
int bin2dec(char *binary)
{
  int multiplier = 1;
  int number = 0;
  for(int i = strlen(binary); i; i--, multiplier *= 2)
  {
    if(binary[i - 1] == '1') number += multiplier;
    else if(binary[i - 1] != '0')
    {
      cout << "Не верный формат бинарного числа";
      return -1;
    }
  }
  return number;
}
// Преобразование четвертичного числа в десятичное
int four2dec(char *oct)
{
  int number = 0, mul = 0;
  int multiplier = 1;

  for(int i = strlen(oct); i; i--, multiplier *= 8)
  {
    switch(oct[i - 1])
    {
      case '0'
        mul = 0;
        break;
      case '1'
        mul = 1;
        break;
      case '2'
        mul = 2;
        break;
      case '3'
        mul = 3;
        break;
      default :
        cout << "Не верный формат четвертичного числа";
        return -1;
    }
    number += mul*multiplier;
  }

  return number;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: