Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Преобразование чисел из двоичной, четвертичной и десятичной систем исчисления
 
 автор: Cena   (08.11.2011 в 21:40)   письмо автору
 
 

задание: даны два целых числа A=(3210) в четверичной системе счисления и B=(10000001) в двоичной системе.Найти новое десятичное число C=(2A+3B)*(2A+3B).На экран вывести C в десятичном и восьмеричном виде.Ввод и вывод использовать cin и cout, Спасибо! У меня получается все с переводом, но загвостка в самой программе, то есть не могу написать правильно)):

  Ответить  
 
 автор: gambit09   (08.11.2011 в 22:29)   письмо автору
 
   для: Cena   (08.11.2011 в 21:40)
 

Ну, покажите Ваш код программы, который Вы написали.

  Ответить  
 
 автор: Cena   (08.11.2011 в 22:45)   письмо автору
 
   для: gambit09   (08.11.2011 в 22:29)
 

Я посчитал C в десятичной системе счисления, у меня в программе проблема, не могу понять, как ее написать)); то есть я A и B ПЕРЕВОЖУ В ДЕСЯТИЧНУЮ систему, а далее как простые целые числа я подставляю в формулу C, А ПОСЛЕ ПЕРЕВОЖУ В ДЕСЯТИЧНУЮ И ВОСЬМИРИЧНУЮ систему? Я просто не могу понять, как заставить процессор понимать эти системы счисления:((

  Ответить  
 
 автор: cheops   (09.11.2011 в 13:08)   письмо автору
 
   для: Cena   (08.11.2011 в 21:40)
 

Не очень понятно, числа поступают от пользователя, или их можно задать прямо в программе? Т.е. мы имеем дело со строками или с числами. В последнем случае ничего даже переводить не потребуется. Кстати, вот еще что не понятно, можно ли использовать библиотечные функции или системы перевода нужно реализовывать самостоятельно?

  Ответить  
 
 автор: Cena   (09.11.2011 в 15:47)   письмо автору
 
   для: cheops   (09.11.2011 в 13:08)
 

Здраствуйте, числа поступают от пользователя, то есть должен осуществиться перевод A и B в десятичную систему, а далее, чтобы найти значение C В ДЕСЯТИЧНОМ виде нужно значения A и B посчитать как целые числа, а после требуется вывести на экран значение C в десятичном и в восьмиричном виде. Значения A и B, и формула нахождения C написаны выше, я просто не понимаю, как заставить процессор переводить из одной системы счисления в другую?

  Ответить  
 
 автор: Cena   (09.11.2011 в 15:48)   письмо автору
 
   для: Cena   (09.11.2011 в 15:47)
 

A,B,C- значения, а в скобках цифры

  Ответить  
 
 автор: cheops   (09.11.2011 в 18:55)   письмо автору
 
   для: Cena   (09.11.2011 в 15:47)
 

Можно поступить следующим образом
#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;
}

  Ответить  
 
 автор: Cena   (09.11.2011 в 19:20)   письмо автору
 
   для: cheops   (09.11.2011 в 18:55)
 

Большое спасибо Вам, осталось только разобраться в программе, т. к. много новых функций задействованы в программе.

[поправлено модератором: новый вопрос выделен в новую тему]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования