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

Из двоичной в десятичную+разворот - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переставить строки файла http://www.cyberforum.ru/cpp-beginners/thread422687.html
#include <iostream> #include <fstream> void main () { // открывает файл для чтения std::fstream inputFile ("D:\\a.txt", std::fstream::in); // открывает файл для записи результата ...
C++ Ошибка при выполнении Логического решения... #include <iostram> #include <conio.h> #include <cmath> using namespace std; int main(int argc, char *argv){ int x, correct, counter; srand(static_cast<unsigned int>(time(0))); http://www.cyberforum.ru/cpp-beginners/thread422675.html
C++ Двоичное дерево поиска
Уважаемые форумчане, помогите разобраться, вот листинг: #include <stdio.h> #include <stdlib.h> #include <iostream> #include <conio.h> #include <string.h> #define VER 50 #define SIZE 20
C++ Подправить задачку.
Помогите, пожалуйста, у меня есть условие задачи: дана последовательность упорядоченных по возрастанию чисел а1...а15, и число n не равное ни одному из этих чисел, такое что а1<n<а15. найти...
C++ CUDA C++ не понимаю ошибку! http://www.cyberforum.ru/cpp-beginners/thread422657.html
Есть код на C Считаем определитель. Подсчет определителя был реализован по методу Гаусса: приводим матрицу к треугольному виду и перемножаем диагональные элементы. : #include <stdio.h> #include...
C++ Найти количество отрицательных чисел среди заданных Я решил начать изучать С++ сейчас читаю учебник и не могу сделать упражнение: "Напишите программу,запрашивающую у пользователя несколько значений и отображающую сообщение о количестве отрицательных... подробнее

Показать сообщение отдельно
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 10:40
Выводить обратно в десятичной? Если да, то
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
#include <iostream>
 
int reverseBin(int num)
{
    int out= 0;
    int tmp = 1;
    while(tmp <= num)
    {
        if(tmp & num)
        {
            ++out;
            break;
        }
        tmp <<= 1;
    }
    
    tmp <<= 1;
    
    while(tmp <= num)   
    {
        out <<= 1;
        if(tmp & num)
            ++out;
        tmp <<= 1;
    }
    return out;
}
    
int main()
{   
    int n;
    while(std::cin >> n)
        std::cout << reverseBin(n) << std::endl;
    return 0;
}
Добавлено через 8 минут
В двоичной, через число
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
#include <iostream>
#include <iomanip>
 
double reverseBin(int num)
{
    double out= 0;
    int tmp = 1;
    while(tmp <= num)
    {
        if(tmp & num)
        {
            ++out;
            break;
        }
        tmp <<= 1;
    }
    
    tmp <<= 1;
    
    while(tmp <= num)   
    {
        out *= 10;
        if(tmp & num)
            ++out;
        tmp <<= 1;
    }
    return out;
}
    
int main()
{   
    int n;
    while(std::cin >> n)
        std::cout << std::setprecision(32) << reverseBin(n) << std::endl;
    return 0;
}
Отсекаются младшие нули у исходного числа.

Добавлено через 5 минут
В двоичной через строку. Младшие нули у исходного числа сохраняются
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
std::string reverseBin(int num)
{
    std::string out("");
    for(int tmp = 1; tmp <= num; tmp <<= 1)
        out = out + ((tmp & num) ? ('1') : ('0'));
    return out;
}
    
int main()
{   
    int n;
    while(std::cin >> n)
        std::cout << reverseBin(n) << std::endl;
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru