0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 46
1

Перевод числа из десятичного вида в двоичный. Что неправильно в коде?

28.10.2014, 23:42. Показов 1785. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RUS");
    cout << "эта программа переводит числа из десятичного вида в двоичный" << endl;
        cout << "введите число";
    int a;
    cin >> a;
    int b;
    int i = 1;
    int arrey[100];
    while (a != 0)
    {
        if (a % 2 != 0)
        {
            arrey[i] = 0;
            i++;
            a = a / 2;
        }
        else
        {
            arrey[i] = 1;
            i++;
            a = a / 2;
        }
        
    }
    while (i != 0)
    {
        cout << arrey[i];
        i--;
    }
    system("PAUSE");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2014, 23:42
Ответы с готовыми решениями:

Перевод из десятичного в двоичный
int S = L / 2; while (S &gt; 1) { ...

Перевод десятичного double в двоичный и обратно
Не могу понять,как это делается на логическом уровне,прошу помощи

Длинная арифметика: перевод чисел из десятичного в двоичный формат
Всем привет!) Начал я сегодня баловаться длинной арифметикой) всё вроде хорошо получилось) но мне...

Перевод ip адреса из десятичного вида в нормальный
Здравствуйте. Есть ли такая функция, которая переводит ip-адрес из десятичного вида в нормальный (с...

11
19 / 19 / 18
Регистрация: 25.08.2014
Сообщений: 186
29.10.2014, 00:12 2
Если число нечетное, то надо вычесть единицу и разделить на два.

Добавлено через 8 минут
Нет, бред сказал.
Вот код в два раза меньше и рабочий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
   int a;
   cin >> a;
   string bin = "";
   while (a > 0)
   {
      if (a % 2)
         bin = '1' + bin;
      else
         bin = '0' + bin;
      a /= 2;
   }
   cout << bin;
   return 0;
}
0
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 46
29.10.2014, 17:24  [ТС] 3
вставил Ваш код в Visual studio 2013. выдаёт вот это:
1>------ Сборка начата: проект: ConsoleApplication9, Конфигурация: Debug Win32 ------
1> Исходный код1.cpp
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код1.cpp(1): warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код1.cpp(20): fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1> Исходный код.cpp
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код.cpp(1): warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код.cpp(20): fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1> Создание кода...
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
73 / 73 / 28
Регистрация: 06.10.2013
Сообщений: 309
29.10.2014, 17:27 4
Цитата Сообщение от maggot04 Посмотреть сообщение
stdafx.h
сверху к исходнику в include добавьте... Должно помочь
либо iostream заменить на iostream.h
0
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 46
29.10.2014, 17:41  [ТС] 5
там было include <iostream>. если прописать include <iostream.h>, то выдаёт вот это:
1>------ Сборка начата: проект: ConsoleApplication9, Конфигурация: Debug Win32 ------
1> Исходный код1.cpp
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код1.cpp(1): warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код1.cpp(20): fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1> Исходный код.cpp
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код.cpp(1): warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication9\consoleapplication9\исходный код.cpp(20): fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1> Создание кода...
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
7638 / 6446 / 2940
Регистрация: 14.04.2014
Сообщений: 28,103
29.10.2014, 17:50 6
Просто создай новый проект и вставь в него содержимое main() и подключи iostream.
0
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 46
29.10.2014, 18:01  [ТС] 7
Вы уж извините, но тут либо я глупый и не умею пользоваться компилятором, либо тут что-то не так. вот что выводит:
Кликните здесь для просмотра всего текста
XML
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
1>------ Сборка начата: проект: ConsoleApplication10, Конфигурация: Debug Win32 ------
1>  Исходный код.cpp
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication10\consoleapplication10\исходный код.cpp(17): error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(498): может быть "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_streambuf<char,std::char_traits<char>> *)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(478): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(const void *)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(458): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(long double)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(438): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(double)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(418): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(float)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(397): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned __int64)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(377): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(__int64)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(356): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned long)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(336): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(long)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(316): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned int)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(291): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(int)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(271): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned short)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(237): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(short)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(217): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::_Bool)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(210): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(203): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_ios<char,std::char_traits<char>> &(__cdecl *)(std::basic_ios<char,std::char_traits<char>> &))"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(197): или       "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_ostream<char,std::char_traits<char>> &(__cdecl *)(std::basic_ostream<char,std::char_traits<char>> &))"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(1026): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const std::error_code &)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(988): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>,std::string>(std::basic_ostream<char,std::char_traits<char>> &&,const _Ty &)"
1>          with
1>          [
1>              _Ty=std::string
1>          ]
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(978): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,unsigned char)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(971): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const unsigned char *)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(964): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,signed char)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(957): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const signed char *)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(831): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,char)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(784): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const char *)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(746): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,char)"
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\ostream(699): или       "std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const char *)"
1>          при попытке сопоставить список аргументов "(std::ostream, std::string)"
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
7638 / 6446 / 2940
Регистрация: 14.04.2014
Сообщений: 28,103
29.10.2014, 18:28 8
Ты string подключил? Покажи всю программу.
0
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 46
29.10.2014, 19:52  [ТС] 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    int a;
    cin >> a;
    string bin = "";
    while (a > 0)
    {
        if (a % 2)
            bin = '1' + bin;
        else
            bin = '0' + bin;
        a /= 2;
    }
    cout << bin;
    return 0;
}
0
Модератор
Эксперт С++
13322 / 10626 / 6350
Регистрация: 18.12.2011
Сообщений: 28,375
29.10.2014, 20:05 10
maggot04, Wiiiiijjj, А Вас не смущает, что переводите-то
вы из бинарного ДВОИЧНОГО кода в строковое двоичное представление.

Задача должна быть интерпретирована так.
Перевести строку, представляющую десятичное число вида "19"
в строку представляющую двоичный эквивалент этого числа вида "10011".
0
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 46
29.10.2014, 23:11  [ТС] 11
ну а если так?
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
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RUS");
    cout << "эта программа переводит числа из десятичного вида в двоичный" << endl;
    cout << "введите число";
    int a;
    cin >> a;
    int b;
    int i = 1;
    int arrey[100];
    while (a != 0)
    {
        if (a % 2 = 0)
        {
            arrey[i] = 0;
            i++;
            a = a / 2;
        }
        else
        {
            arrey[i] = 1;
            i++;
            a = a / 2;
        }
 
    }
    while (i != 0)
    {
        cout << arrey[i];
        i--;
    }
    system("PAUSE");
    return 0;
}
выводит вот это:

1>------ Сборка начата: проект: ConsoleApplication13, Конфигурация: Debug Win32 ------
1> Исходный код.cpp
1>c:\users\user\documents\visual studio 2013\projects\consoleapplication13\consoleapplication13\исходный код.cpp(16): error C2106: =: левый операнд должен быть левосторонним значением
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Добавлено через 2 часа 29 минут
вот этот работает, но выдаёт невиданную хрень:
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
#include <iostream>
using namespace std;
int main()
{
    int mas[100], a;
    int b = 1;
    cin >> a;
    while (a != 0)
    {
        if (a % 2 == 0)
        {
            mas[b] = 0;
            a = a / 2;
            b++;
        }
        else
        {
            mas[b] = 1;
            a = a / 2;
            b++;
 
        }
    }
    while (b > 0)
    {
        cout << mas[b];
        b--;
    }
    system("PAUSE");
    return 0;
}
Добавлено через 26 минут
все!)) у меня получилось))) спасибо вам)!)
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
#include <iostream>
using namespace std;
int main()
{
    int mas[100], a;
    int b = 1;
    setlocale(LC_ALL, "RUS");
    cout << "введите число в десятичной системе счисления, которое нужно перевести в двоичную" << endl;
    cin >> a;
    cout << endl;
    while (a > 0)
    {
        if (a % 2 == 0)
        {
            mas[b] = 0;
            a = a / 2;
            b++;
        }
        else
        {
            mas[b] = 1;
            a = a / 2;
            b++;
 
        }
    }
    int i = 1;
    
    while (b>0)
    {
        if ((mas[b] == 0) || (mas[b] == 1))
            cout << mas[b];
        b--;
    }
    cout << endl;
    system("PAUSE");
    return 0;
}
0
Заблокирован
29.10.2014, 23:26 12
Твоя задача решается так (оставил по возможности твой код)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <bitset>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
    cout << "эта программа переводит числа из десятичного вида в двоичный [размер: 4 байта]!" << endl;
    cout << "введите число: ";
    int a;
    cin >> a;
    bitset<32> bits; 
    bits = a;
    cout << "Результат: " << bits << endl;
    
    system("PAUSE");
    return 0;
}
0
29.10.2014, 23:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2014, 23:26
Помогаю со студенческими работами здесь

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

Написать блоки перевода числа из десятичного в двоичный и обратно
пАмАгите: Написать блоки перевода числа из десятичного в двоичный и обратно

Сложить четные цифры десятичного числа: неправильно делятся числа
Здравствуйте. Задача следующая: нужно сложить все четные числа десятичного числа. Исходное...

перевод десятичного вещественного в машинный код(двоичный код)
пожалуйста , подскажите пожалуйста код C++ ,для перевода вещественного числа в машиное (двоичное...

Перевод из десятичного числа в 16-й
Ребят помогите найти ошибку. Вводится десятичное число в консоль, затем переводится в...

Перевод десятичного числа в двоичное
Составить программу перевода десятичного числа в двоичное


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru