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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Seattle
Сообщений: n/a
04.02.2014, 17:36     Перевод десятичного числа в двоичное #1
вот, что я написал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<locale.h>
using namespace std;
int main(){
    setlocale(LC_ALL,"rus");
    int digit;
    cout<<"Ââåäèòå öåëîå ÷èñëî ГЁ Г*Г*æìèòå <Enter> -> ";
    cin>>digit;
    for(;digit!=0;){
        if(digit%2==0){
            cout<<"0";
        }
        else{
            cout<<"1";
        }
        digit/=2;
    }
}
Только у меня двоичное число отображается наоборот. Как его развернуть.
P.S. По заданию програмка должна быть написана через цикл for.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
04.02.2014, 17:42     Перевод десятичного числа в двоичное #2
Создайте вектор или массив, и туда заносите нолики и единичке. А потом просто выводите наоборот. Или в векторе есть функция - реверс.
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
04.02.2014, 17:43     Перевод десятичного числа в двоичное #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <deque>
#include <iterator>
using namespace std;
 
int main()
{
    deque<int> bits;
    unsigned digit;
    cin >> digit;
    while(digit)
    {
        bits.push_front(digit % 2);
        digit /= 2;
    }
    copy(bits.begin(), bits.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    system("pause");
}
И через for:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <deque>
#include <iterator>
using namespace std;
 
int main()
{
    deque<int> bits;
    unsigned digit;
    cin >> digit;
    for(; digit; digit /= 2)
        bits.push_front(digit % 2);
    copy(bits.begin(), bits.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    system("pause");
}
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
04.02.2014, 17:45     Перевод десятичного числа в двоичное #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void binary(std::vector <int>& vec, int num)
{
    for (;num != 1;)
    {
        if (num%2 == 0) vec.push_back(0);
        else vec.push_back(1);
 
        num = num/2;
    }
    vec.push_back(1);
    std::reverse(vec.begin(), vec.end());
}
 
void main()
{
    int n = 5;
    std::vector <int> v;
    binary(v, n);
    for (int i =0 ; i < v.size(); ++ i)
        std::cout << v[i];
    getch();
}
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
04.02.2014, 17:52     Перевод десятичного числа в двоичное #5
Тамика, массив не получится сделать, т.к. при переводе может получиться http://www.cyberforum.ru/cgi-bin/latex.cgi?{1}_{2}, а может вот так http://www.cyberforum.ru/cgi-bin/latex.cgi?{1110011}_{2}, т.е. не точное кол-во символов
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
04.02.2014, 17:56     Перевод десятичного числа в двоичное #6
Цитата Сообщение от Xopecc Посмотреть сообщение
Тамика, массив не получится сделать, т.к. при переводе может получиться http://www.cyberforum.ru/cgi-bin/latex.cgi?{1}_{2}, а может вот так http://www.cyberforum.ru/cgi-bin/latex.cgi?{1110011}_{2}, т.е. не точное кол-во символов
Не поняла, что Вы хотели сказать.
RedDevilHat
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
04.02.2014, 17:57     Перевод десятичного числа в двоичное #7
Xopecc, динамический массив?
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
04.02.2014, 18:09     Перевод десятичного числа в двоичное #8
RedDevilHat, ну, с этим будут мороки
Тамика,
Создайте вектор или массив, и туда заносите нолики и единичке. А потом просто выводите наоборот. Или в векторе есть функция - реверс.
Я вот про это. Про создать массив
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 18:10     Перевод десятичного числа в двоичное
Еще ссылки по теме:

C++ Перевод десятичного числа в двоичное число
Перевод десятичного числа в двоичное, результат в массиве типа int C++
C++ Реализовать систему перевода десятичного числа в двоичное не используя деление и остаток от деления

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

Или воспользуйтесь поиском по форуму:
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
04.02.2014, 18:10     Перевод десятичного числа в двоичное #9
А, Вы про количество элементов. Да, тут Вы правы. Вектор наше всё.
Yandex
Объявления
04.02.2014, 18:10     Перевод десятичного числа в двоичное
Ответ Создать тему
Опции темы

Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru