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

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

Восстановить пароль Регистрация
 
DmitryzZ
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 3
17.11.2015, 23:12     Перевод чисел из 10-й в 2-ю систему счисления #1
Всем привет.
Нужна помощь в доработке след.программы:
Программа переводит числа из 10-й в 2-ю систему счисления.
При вводе отрицательного числа,например -11,должно выводится:
-1011,-10:-1010,а выводится белеберда.

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 <stdlib.h>
#include <stdio.h>
int main()
{
    int i=0, x,n, b[100];
    x=64;
    printf("Vvod:");
    scanf("%d", &x );
    while(x<0)
   {
                             
    printf("-");
    b[i]=x%2;
       x/=2;
    i++; 
     };
   while (x>1)
    {
        b[i]=x%2;
        x/=2;
        i++;
    };
    b[i]=x;
    while (i>=0)
    {
        printf("%i", b[i]);
        i--;
    };
  
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vaiz
 Аватар для Vaiz
94 / 88 / 27
Регистрация: 01.07.2012
Сообщений: 262
Завершенные тесты: 1
17.11.2015, 23:37     Перевод чисел из 10-й в 2-ю систему счисления #2
Просто сделайте число положительным

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
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
    int i = 0, x, n, b[100];
 
    printf("Vvod: ");
    scanf("%d", &x);
 
    if(x < 0)
    {
        printf("-");
        x = -x;
    };
 
    while (x > 1)
    {
        b[i]=x%2;
        x/=2;
        i++;
    };
 
    b[i]=x;
    while (i>=0)
    {
        printf("%i", b[i]);
        i--;
    };
 
    return 0;
}
Байт
 Аватар для Байт
13940 / 8771 / 1219
Регистрация: 24.12.2010
Сообщений: 15,872
17.11.2015, 23:38     Перевод чисел из 10-й в 2-ю систему счисления #3
Цитата Сообщение от DmitryzZ Посмотреть сообщение
а выводится белеберда.
Ну, что написано, то и выводится
С отрицательными надо так
C++
1
2
3
4
5
if (x < 0) {
  x = -=x;
  printf("-");
}
// далее делаем все как для положительных
Добавлено через 49 секунд
Ну вот. И Vaiz со мной согласен.
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
17.11.2015, 23:39     Перевод чисел из 10-й в 2-ю систему счисления #4
Цитата Сообщение от DmitryzZ Посмотреть сообщение
printf("-");
код не читал, но если проблема только с отрицательными числами, то приведи их положительным , а потом считай, тем более что ты знак сам рисуешь.
DmitryzZ
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 3
17.11.2015, 23:42  [ТС]     Перевод чисел из 10-й в 2-ю систему счисления #5
Спасибо большое ребят!
Теперь понял
Байт
17.11.2015, 23:42     Перевод чисел из 10-й в 2-ю систему счисления
  #6

Не по теме:

Нас уже трое таких умных! Считаем, что принято единогласно!

Yandex
Объявления
17.11.2015, 23:42     Перевод чисел из 10-й в 2-ю систему счисления
Ответ Создать тему
Опции темы

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