Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Артем81
0 / 0 / 0
Регистрация: 03.06.2014
Сообщений: 2
#1

Перевод из двоичного счисления в десятичное - C++

03.06.2014, 16:03. Просмотров 450. Ответов 4
Метки нет (Все метки)

Здравствуйте. Подскажите, почему так получается: при числе, состоящем из менее чем десяти знаков, программка нормально переводит из двоичного в десятичное, если знаков более, чем десять - выдает всякую фигню?

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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    cout << "input dvoichnoe chislo " << endl;
    int number;// number - двоичное число, которое будем переводить в десятичное.
    cin >> number;
 
    int counter; // - переменная для определения количества цифр (знаков).
 
    int number0 = number;//Сохраним здесь введенное двоичное число, чтобы вычислить количество знаков.
    counter = 0;
    do
    {
        number0 = number0 / 10;
        counter++;
    }
    while (number0 >= 1);
    //Теперь переменная counter содержит количество цифр (знаков).
 
    //Вводим переменную varnumber, которая будет являться остатком от деления числа
    //number на 10 в заранее определенной степени.
    int varnumber;
 
    //Вводим переменную number10, которая является результатом вычисления.
    int number10;
    number10 = 0;
 
    int n; // - переменная, определяющая степень, в которую возводится число 2 на данном этапе расчета.
    n = 0;
 
 
 
    while (counter >= 1)
    {
       varnumber = number % 10;
 
    //При этом само число number уменьшаем на порядок.
    number = number / 10;
 
    //перевод из двоичной в десятичную систему счисления осуществляем суммированием чисел, полученных
    // в результате умножения varnumber на 2 в заранее определенной степени, с учетом counter.
 
    number10 = number10 + varnumber * pow (2, n);
 
    counter = counter - 1;
 
    n = n + 1;
    }
 
 
 
    cout << "Your number is: " << number10 << endl;
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 16:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из двоичного счисления в десятичное (C++):

Перевод двоичного числа в десятичное - C++
Программа принимает введенное с клавиатуры двоичное число, например 1011, и выводит его десятичное представление, для 1011 - 11. Программа...

Перевод двоичного числа в шестнадцатеричную систему счисления - C++
дано целое число в двоичной системе счисление,т.е. последовательность чисел 0 и 1. Составить программу перевода этого числа в...

Перевод натурального числа из десятичной системы счисления в систему счисления по основанию - C++
Здравствуйте. Я хотела бы попросить у вас помощи. Я понимаю, что это не очень красиво, но вдруг кто-нибудь откликнется. Я не очень...

Перевод строки из 2-ной системы счисления в 8-ную систему счисления - C++
помогите пожалуйста как сделать перевод строки из 2 системы счисления на 8 систему счисления через массив ?

Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно - C++
Нужно две программы, одна реализует перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки, а другая...

Перевести произвольное десятичное число типа char в двоичную систему счисления - C++
Здравствуйте, уважаемые программисты! У меня скоро сессия, а долги не сданы до сих пор (Именно по программированию) Я даже не новичок -...

4
intern
15 / 15 / 6
Регистрация: 30.03.2014
Сообщений: 74
Завершенные тесты: 2
03.06.2014, 17:08 #2
Вы считываете входные данные в знаковую переменную типа int.
Десятичное 10000000000 - больше ее максимально допустимого значения.
0
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
03.06.2014, 17:13 #3
Вместо int используй unsigned long
0
ExModE
2 / 2 / 2
Регистрация: 04.03.2011
Сообщений: 27
03.06.2014, 18:10 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
randy92, unsigned long long
0
Артем81
0 / 0 / 0
Регистрация: 03.06.2014
Сообщений: 2
04.06.2014, 07:31  [ТС] #5
ExModE, спасибо. заработало.
0
04.06.2014, 07:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 07:31
Привет! Вот еще темы с ответами:

Перевод чисел из 16 системы счисления в 2 систему счисления - C++
Помогите составить программу для перевод чисел из 16 с/c в 2 c/c при условии,что программ может переводить и дробные числа.

Перевод числа из двоично-десятичного в десятичное - C++
Помогите! Нужна программа перевода числа из двоично-десятичного в десятичное

Перевод двоичного кода в текст - C++
Здравствуйте уважаемые форумчане, у меня было задание сделать шифратор/дешифратор текста, хотя в С++ не работал ^_^ У вас на форуме нашел...

Перевод целого десятичного числа в строку и обратно в десятичное число - C++
перевод целого десятичного числа в строку и обратно в десятичное число, результат вывести в 3 столбика и 20 строк. заранее спасибо)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.