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

Перевод числа из десятичной системы в двоичную - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.87
yardie
 Аватар для yardie
8 / 8 / 0
Регистрация: 14.07.2010
Сообщений: 166
20.09.2010, 12:29     Перевод числа из десятичной системы в двоичную #1
нужно написать программу перевода числа из десятичной системы в двоичную
используя только цикл for и If else

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
void main()
{
int dec, v,i;
cin >> dec;
v=128;
 
for (i=1; i<=8; i++)
if (dec >=v )
{
 cout << "1";
 dec-=v;
}
else 
cout << "0";
v=v/2;
 
cin.get();
cin.get();
}
не знаю что не так но считает не правильно(((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2010, 12:29     Перевод числа из десятичной системы в двоичную
Посмотрите здесь:

Перевод числа из десятичной системы в двоичную C++
C++ Перевод числа из десятичной системы счисления в двоичную.
C++ Перевод числа из десятичной системы счисления в двоичную
C++ Перевод числа из десятичной системы счисления в двоичную
перевод из десятичной системы счисления в двоичную числа с плавающей точкой C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.09.2010, 12:35     Перевод числа из десятичной системы в двоичную #2
C++
1
2
3
4
5
6
7
8
9
10
void DecToBin(unsigned int x){ 
   do 
      { 
        if (x%2==0)
        cout<<"0";
        else
        cout<<"1";
        x/=2;
      } while (x>=1);
}
Добавлено через 40 секунд
ой, цикл не For только
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
20.09.2010, 12:58     Перевод числа из десятичной системы в двоичную #3
C++
1
2
3
4
5
6
7
for (;;)
{       if (x%2==0)
        {cout<<"0";}
        else
        {cout<<"1";}
        x/=2;
if(x>=1) {break;}}
вот предыдущий код с for и if.

Добавлено через 19 минут
сори. Условие напутал.
C++
1
if(x>=1) {break;}
заменить на
C++
1
if(x<=1) {break;}
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
20.09.2010, 13:01     Перевод числа из десятичной системы в двоичную #4
А если просто for( ;x>=1; ) написать, это нехорошо?

Кстати, долго не мог понять, что не так. Ребят, у вас число задом наперёд печатается Из решений только массив на ум приходит, или можно по-другому как-то?

Добавлено через 2 минуты
Vergil, тогда уж строго меньше:

C++
1
if(x<1) break;
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
20.09.2010, 13:21     Перевод числа из десятичной системы в двоичную #5
dihlofos, работаю над этим. Вопрос: почему строго меньше? У меня прога работает, но один 0 с конца убирает.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
20.09.2010, 13:24     Перевод числа из десятичной системы в двоичную #6
Vergil, хм, а если в конце 1. Например для 4 выведет 00, а если строгое условие, то 001.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
20.09.2010, 13:29     Перевод числа из десятичной системы в двоичную #7
Цитата Сообщение от dihlofos Посмотреть сообщение
Кстати, долго не мог понять, что не так. Ребят, у вас число задом наперёд печатается Из решений только массив на ум приходит, или можно по-другому как-то?
Рекурсивно
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
20.09.2010, 13:42     Перевод числа из десятичной системы в двоичную #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
#include <iostream.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{int v,i, n, x;
cin>>v;
x=v;
for (n=1;;n++) {
x/=2; if(x<=1){break;}}
int *s=new int [n];
for (i=0;; i++) {
if (v<2) {s[n-i]=v; break;}
else{s[n-i]=v%2; }v=v/2;}
for (i = 0; i <= n; i++) {cout<<s[i];}
cout<<endl;
system("pause");
return 0;
}
//---------------------------------------------------------------------------
а-а. Я просто забыл сказать, что собираюсь кое-что еще дописать. Решил правкой воспользоваться, но заметил, что прога задом наперед и пошел исправлять.
Если есть другие предложения буду рад услышать.
yardie, зачем у вас deс?
yardie
 Аватар для yardie
8 / 8 / 0
Регистрация: 14.07.2010
Сообщений: 166
20.09.2010, 14:08  [ТС]     Перевод числа из десятичной системы в двоичную #9
dec это ввод числа десятичного которое будем переводить!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2010, 14:27     Перевод числа из десятичной системы в двоичную
Еще ссылки по теме:

Перевод из десятичной системы в двоичную C++
Перевод из десятичной системы счисления в двоичную в массиве C++
Перевод числа из десятичной системы счисления в двоичную C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
20.09.2010, 14:27     Перевод числа из десятичной системы в двоичную #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void printDecAsBin(int value)
{
    if(value >= 2) printDecAsBin(value/2);
    std::cout << value%2;
}
 
int main()
{
    int x;
    std::cin >> x; 
    printDecAsBin(x);    
    return 0;
}
Добавлено через 5 минут
А, надо же использовать for... Тогда рекурсия отпадает
Yandex
Объявления
20.09.2010, 14:27     Перевод числа из десятичной системы в двоичную
Ответ Создать тему
Опции темы

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