Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Gubila_2000
5 / 1 / 3
Регистрация: 07.11.2014
Сообщений: 194
Записей в блоге: 1
1

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

18.03.2015, 14:55. Просмотров 1488. Ответов 5
Метки нет (Все метки)

Программа вроде работает, но почему-то выдает ошибку после вывода результата. Из за этого я не могу продолжить работать уже с переводом отрицательных чисел. Подскажите в чем суть ошибки и как ее исправить:

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
#include <stdio.h>
 
#include <iostream>
 
void main()
 
{
 
unsigned a;
 
char bnum[17];
 
unsigned short i, j, a1;
 
printf("BBeDuTe LLeJioe TToJIa>I<uTeJibHoe 4ucJIo: ");
 
scanf_s("%d", &a);
 
i=0;
 
j=0;
 
while (a>0)
 
{
 
a1=a%2;
 
if (a1==1) bnum[i]='1';
 
else bnum[i]='0';
 
a/=2;
 
j++;
 
i++;
 
}
 
bnum[i]=' ';
 
printf("\nDBou4Hoe 4ucJIo:");
 
for (i=j; i>=0; i--)
 
{printf("%c", bnum[i]);}
 
system("pause");
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2015, 14:55
Ответы с готовыми решениями:

Рекурсивная процедура перевода числа из десятичной системы счисления в двоичную
3) Написать рекурсивную процедуру перевода нату¬рального числа из десятичной...

Разработать программу перевода вещественных чисел из десятичной системы счисления в двоичную
Помогите пожалуйста написать программу.Разработать программу перевода...

Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную
Здравствуйте. Помогите написать рекурсивную процедуру перевода натурального...

Программа для перевода числа из десятичной системы счисления во все существующие С++
Помогите пожалуйста. Не совсем понимаю как это правильно написать

Составить программу для перевода чисел из шестнадцатеричной системы счисления в двоичную
Видел похожий вопрос на форуме, но к сожалению он был для VB.

5
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
18.03.2015, 15:00 2
Цитата Сообщение от Gubila_2000 Посмотреть сообщение
C++
1
bnum[i]=' ';
C++
1
bnum[i]=0;
или, что то же самое
C++
1
bnum[i]='\0';
Добавлено через 2 минуты
Цитата Сообщение от Gubila_2000 Посмотреть сообщение
C++
1
for (i=j; i>=0; i--)
i и так равно j, глупостями занимаетесь. Либо
C++
1
for (i=j-1; i>=0; i--)
либо
C++
1
for (i=i-1; i>=0; i--)
0
ValeryS
Модератор
7262 / 5516 / 692
Регистрация: 14.02.2011
Сообщений: 18,672
18.03.2015, 15:02 3
Цитата Сообщение от Gubila_2000 Посмотреть сообщение
char bnum[17];
не маловато ли?
Цитата Сообщение от Gubila_2000 Посмотреть сообщение
unsigned a;
32 или 64 разряда
0
Gubila_2000
5 / 1 / 3
Регистрация: 07.11.2014
Сообщений: 194
Записей в блоге: 1
18.03.2015, 16:58  [ТС] 4
Цитата Сообщение от ValeryS Посмотреть сообщение
не маловато ли?

32 или 64 разряда
Да без разницы скольки разрядка, мне все равно слишком большие числа не нужно будет показывать. Мне возможно даже 8 ячеек хватило бы, а +1 лишний для пробела. Почему-то без него он не хочет выводить.

Добавлено через 1 час 43 минуты
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
C++
1
bnum[i]=0;
или, что то же самое
C++
1
bnum[i]='\0';
Добавлено через 2 минуты
i и так равно j, глупостями занимаетесь. Либо
C++
1
for (i=j-1; i>=0; i--)
либо
C++
1
for (i=i-1; i>=0; i--)
Это не ошибки, а просто субьективное мнение, потому что на суть не влиет(ошибка та же).
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
18.03.2015, 18:45 5
Gubila_2000, так Вы текст или скрин ошибки приведите, чтобы люди здесь не гадали, что у Вас не так.

Добавлено через 18 минут
Gubila_2000,
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
#include <iostream>
#include <string>
 
// int main()
// {
    // std::string binary = "";
    // unsigned decimal;
    // std::cout << "Введите положительное число: ";
    // std::cin >> decimal;
    // while (decimal)
    // {
        // binary = std::to_string(decimal%2) + binary;
        // decimal /= 2;
    // }
    // std::cout << binary << std::endl;
// }
 
int main()
{
    char binary[65], temp;
    unsigned decimal, i = 0, j;
    std::cout << "Введите положительное число: ";
    std::cin >> decimal;
    while (decimal)
    {
        binary[i] = decimal % 2 + '0';
        decimal /= 2;
        ++i;
    }
    binary[i] = 0;
    
    for (j = 0; j < i / 2; ++j)
    {
        temp = binary[i-1-j];
        binary[i-1-j] = binary[j];
        binary[j] = temp;
    }
    
    std::cout << binary << std::endl;
}
0
sklad1002
20 / 20 / 13
Регистрация: 28.04.2013
Сообщений: 85
21.03.2015, 18:08 6
Gubila_2000, Kerry_Jr,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
unsigned int mask = 0x80000000;
bool flag = false;
for( int i = 0; mask != 0 ; mask >>= 1 )
{
    binary[i] = decimal & mask; // + '0'?
        
    if( flag )
    {
        ++i;
    }
    else if( binary[i] != 0 )
    {
        flag = true;
        ++i;
    }
}
общий смысл перевода в двоичную систему, без разного рода делений и последующих переворотов, флаг я добавил, чтобы первые нули не писались, тут канеш еще обработка отрицательных нужна и прочая хрень, но общий смысл таков
0
21.03.2015, 18:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2015, 18:08

Перевод из десятичной системы счисления в двоичную
Задали написать прогу для перевода числа из одной системы в другую #include...

Перевод из десятичной системы счисления в двоичную
Привет, программирую (учусь) около недели, и вот хотел написать программу. Так...

Написать рекурсивную функцию перевода числа с десятичной системы исчисления в двоичную
Здравствуйте! Нужно написать рекурсивную функцию перевода числа с десятичной...


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

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

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