Форум программистов, компьютерный форум CyberForum.ru

Программа перевода числа из 10 СС в 2 СС - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ иерархия классов http://www.cyberforum.ru/cpp-beginners/thread95822.html
помогите с классами, базовый класс-ювелирное украшение производный телевизор и стиральная машина в классе не должно быть виртуальных функций
C++ Пошаговая компиляция в Borland 5.01 Всем привет. С недавнего времени при пошаговой компиляции программки(F7) начало выскакивать окно CPU и пошаговость происходит не в окне программы, а в этом долбанном CPU. До самой программы дойти нереально. Не понимаю что происходит? Раньше все было нормально и проверял программу с помощью F7 без проблем. Программу пишу для математических расчетов и поэтому пошаговость очень важна т.к.... http://www.cyberforum.ru/cpp-beginners/thread95816.html
C++ Найти с заданной точностью знач. выражения
Составить функцию возвращающую значение для решения представленной ниже задачи: Найти с заданной точностью значения выражения s=сумма ряда(x^n/n!); n от 1 до бесконечн.; Точность<=10^-4; |x|<1; Помогите не понимающему экономисту) оч прошу!
вывод текста, определение количество слов в тексте, у которых первый и последний символы совпадают. C++
Здравствуйте. Прошу пожалуйста мне помочь с написанием этой программы. Всем за ранее огромное спасибо! Вы спасёте мне жизнь. =) Условие: Ввод данных осуществляется из файла с расширением .DAT. Использовать ТОЛЬКО библиотечные функции ввода/вывода СИМВОЛА. Исходный текст и результат работы программы выводятся на экран. Нельзя использовать функции библиотеки в файле string.h Нельзя...
C++ Как изменить кодировку вывода? http://www.cyberforum.ru/cpp-beginners/thread95729.html
Доброе утро всем. Помогите новичку. Только начал изучать программирование на С++ (в среде Visual Studio 2008 express), и столкнулся с первой проблемой, обьяснения которой ни в каких книжках пока не нашел. #include <iostream> int main() { std::cout << "Привет всем!"; return 0; }
C++ Как делать log.txt? Реализацию объяснять не надо - сам справлюсь. А что выводу в лог подлежит и где именно этот вывод лучше сделать? подробнее

Показать сообщение отдельно
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 480
15.02.2010, 15:36     Программа перевода числа из 10 СС в 2 СС
У Дейтлов есть задача:
Напишите программу, которая печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных в диапазоне от 1 до 256.
Они предлагают следующие инструкции по переводу чисел:
10 СС -> 2 СС
Программа перевода числа из 10 СС в 2 СС

10 СС -> 8 СС
Программа перевода числа из 10 СС в 2 СС

10 СС -> 16 СС
Программа перевода числа из 10 СС в 2 СС

Я для пробы написал код, который переводит десятичную 10 в двоичную 1010. Код очень корявый и не выводит то, что мне надо. Подскажите, в ту ли сторону я иду (уже 3 дня разбираюсь, и никак)?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include<iostream>
using std::cout;
using std::endl;
 
#include<windows>
 
int stepen(int chislo, int stepenChisla)
{
   int chisloVStepeni = 1;
 
   if (stepenChisla == 0)
   {
      chisloVStepeni = 1;
   }
   else
   {
      for (int i = 0; i < stepenChisla; i++)
      {
         chisloVStepeni *= chislo;
      }
   }
 
   return chisloVStepeni;
}
 
int main()
{
   int chisloV10SS; // число в 10 СС, которое будет преобразовано в 2 СС
   int maxStepen2 = 0; // число 2 в максимальной степени
   int s = 0; // значение степени (0...)
   int textMaxStepen2; // проверочное maxStepen2
   int i;
   int cifraChislaV2SS; // очередная цифра числа в 2СС (слева направо)
   int chisloV2SS = 0; // число в 2 СС, полученное прибавлением cifraChislaV2SS
   int ostChislaV10SS; // остаток от числа в 10 СС
   int j;
   int umenshStepen; // уменьшающаяся степень
   int vremOstChislaV10SS;  // хранит временный остаток
 
   for (chisloV10SS = 10; chisloV10SS < 11; chisloV10SS++)
   {
      cout << chisloV10SS << " v 10 CC = ";
 
      while (maxStepen2 < chisloV10SS)
      {
         maxStepen2 = stepen(2, s);
         textMaxStepen2 = stepen(2, (s+1));
 
         if (textMaxStepen2 > chisloV10SS)
         {
            break;
         }
 
         s++;
      }
 
      ostChislaV10SS = chisloV10SS;
      umenshStepen = s;
 
      for (i = 0; i < s; i++)
      {
         if (ostChislaV10SS >= stepen(2, umenshStepen))
         {
            cifraChislaV2SS = ostChislaV10SS / stepen(2, umenshStepen);
         }
 
         if ((cifraChislaV2SS > 0) || (ostChislaV10SS >= stepen(2, umenshStepen)))
         {
            cifraChislaV2SS = 0;
         }
 
         if (cifraChislaV2SS != 0)
         {
            cifraChislaV2SS *= stepen(10, umenshStepen);
         }
 
         chisloV2SS += cifraChislaV2SS;
 
         vremOstChislaV10SS -= stepen(2, umenshStepen);
 
         if (vremOstChislaV10SS > 0)
         {
            ostChislaV10SS -= stepen(2, umenshStepen);
         }
 
         umenshStepen--;
 
      }
 
      cout << chisloV2SS << " v 2 SS " <<endl;
   }
 
   system("pause");
   return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru