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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
#1

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

10.04.2013, 16:49. Просмотров 1222. Ответов 7
Метки нет (Все метки)

Помогите решить эту задачу
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 16:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод отрицательного целого десятичного числа в двоичное (C++):

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

Перевод десятичного числа в двоичное - C++
Доброго времени суток всем. Программа выполняет перевод десятиричного числа в двоичное, если остаток от деления a%b==0; записывает что b (в...

Перевод десятичного числа в двоичное - C++
вот, что я написал #include<iostream> #include<locale.h> using namespace std; int main(){ setlocale(LC_ALL,"rus"); int digit;...

Перевод десятичного числа в двоичное число - C++
Всем доброго времени суток! Собственно вот мой код, который должен переводисть число десятичное в число двоичное. Потестил я его, со...

Рекурсия: перевод десятичного числа в двоичное - C++
Здравствуйте. Пытался написать пример перевода десятичного числа в двоичный с использованием рекурсии . Но при запуске выводит просто ноль...

Перевод десятичного числа в двоичное, результат в массиве типа int - C++
Здравствуйте! Задача: написать программу, которая переводит введенное десятичное число в двоичное число и цифры результата записывает в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.04.2013, 17:22 #2
virtuos553,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <limits>
#include <algorithm>
#include <iterator>
#include <bitset>
using namespace std;
 
void to_binary(int value){
    cout << value << " as binary: " <<
        bitset<numeric_limits<int>::digits>(value);
}
 
int main()
{
    int number;
    cout << "Enter number: ";
        cin >> number;
    
    to_binary(number);
 
    cout << "\n\n";
    return 0;
};
0
Teor
14 / 0 / 1
Регистрация: 09.04.2013
Сообщений: 9
10.04.2013, 18:06 #3
поправьте если не прав:
numeric_limits<int>::digits - кол-во разрядов без знакового, т.е. будет выводится бинарное число без левого (знакового) разряда, что с отрицательными числами немаловажно.

так норм
C++
1
2
3
4
void to_binary(int value){
    cout << value << " as binary: " <<
        bitset<numeric_limits<int>::digits+1>(value);
}
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.04.2013, 18:12 #4
Teor, вы правы, не учел
0
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
11.04.2013, 06:36  [ТС] #5
Спасибо большое, а можно как то проще? Пускай хоть и код больше будет, просто мы тут многое не проходили
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 08:41 #6
virtuos553,

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>
#include <iomanip>
using namespace std;
 
void displayBits(int);
 
int main()
{
    int number;
 
    cout << "Enter the number: ";
        cin >> number;
 
    cout << number << " as binary:\n";
    displayBits(number);
 
    cout << "\n\n";
    return 0;
}
 
void displayBits(int value)
{
    int size = sizeof(int) * 8;
    unsigned c, displayMask = 1 << size-1;
 
    cout << setw(7) << "value = ";
 
    for(c = 1; c <= size; c++)
    {
        cout << (value & displayMask ? '1' : '0');
            value <<= 1;
 
        if(c % 8 == 0)
            cout << " ";
    }
 
    cout << "\n";
}
0
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
13.04.2013, 21:22  [ТС] #7
можешь пояснить описание функции с 20 строчки?
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 21:26 #8
virtuos553, сначала определяем сколько занимает у вас целое, 2 байта или 4, в зависимости от этого узнаем насколько сдвигать битов в маске что обнулить ее, затем просто выводим значение каждого бита.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 21:26
Привет! Вот еще темы с ответами:

Перевод десятичного вещественного числа в двоичное путем побитовых операций (Делить на 2 нельзя) - C++
Нужно написать код на С++, который переводит вещественное десятичное число в двоичное с помощью битовых операторов(Сдвиги, &amp;, | и т.п) ...

Перевод целого десятичного числа в шестнадцатеричную систему счисления - C++
составить програму перевода целого десятичного числа в шестнадцятеричную систему числения

Перевод целого десятичного числа в двоичную систему счисления - C++
Перерыл инет, форум нашел кучу разных вариантов и не одного закончено го :( может у кого есть нормальный вариант реализации кода?

Перевод целого десятичного числа в двоичною систему числения - C++
составит програму перевода целого десятичног числа в двоичною систему числения


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.04.2013, 21:26
Ответ Создать тему
Опции темы

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